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 集合的源表中发现的列。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值