mapx 添加新的永久图层

转:

mapx 添加新的永久图层

MapXLayerInfo LayerInfo ;

CMapXFields MapFields ;
    
    
try ... {

         LayerInfo.CreateDispatch( LayerInfo.GetClsid() ) ;
         MapFields.CreateDispatch( MapFields.GetClsid() );

         MapFields.AddIntegerField(
"C_ID" , TRUE ) ;
         MapFields.AddStringField(
"Name" , 32 ) ;

         COleVariant vFields;
         vFields.vt
= VT_DISPATCH ;
         vFields.pdispVal
= MapFields;
         vFields.pdispVal
->AddRef();

         LayerInfo.SetType( miLayerInfoTypeNewTable );  
//如果是miLayerInfoTypeTemp,则为临时图层
         LayerInfo.AddParameter("Filespec" , COleVariant("文件名") );
         LayerInfo.AddParameter(
"Name" , COleVariant("图层名")   );
         LayerInfo.AddParameter(
"Fields", vFields );

         m_ctrlMapX.GetLayers().Add( LayerInfo );
        
     }

    
catch (COleDispatchException * e) ... {
         e
->ReportError();
         e
->Delete();
     }
catch (COleException * e) ... {
         e
->ReportError();
         e
->Delete();
     }
    

说明:来自参考手册。

miLayerInfoTypeNewTable
参数      /     是否必须/ 说明
FileSpec 是 String:用于新表的 .tab 文件的名称。
Name      否 String:添加的图层的名称。
                                     默认(如未指定)为 LayerX,其中 X 等于当前在地图中使用的图层数+ 1。
Fields      否 Fields 集合:指定表将拥有的列。
                                    图元如果没有字段则为是。
Features 集合:指定用于填充表的列。默认为 none。
OverwriteFile 否String: 如果为 1,则由 FileSpec 参数指定的文件将被覆盖(如果当前存在)。
                                            如果为 0,则将不覆盖该文件。
                                            注:所有非 0 的值均将强制覆盖该文件。

对于 miLayerInfoTypeNewTable:
• 必须使用 Fields 集合或 Features 集合,两者均可使用。
• 如果只传递 Features 集合,则 MapX 将尝试从 Features 所源自的表来获取列信息。
• 如果传递 Features 和 Fields 集合,则 MapX 将尝试从 Features 所源自的表来获取列信息。
• 如果只传递 Fields 集合,则检查用于 miDatasetLayer 类型的 Dataset。在发现之后,则对照miDatasetLayer 中的列来检查传入的 Fields。如果 miDatasetLayer Dataset 没有出现,则只在传递入的 Fields 信息上创建表。
• Fields 默认应该为 Features 集合的源表中发现的列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值