欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于地图x动态创建图层的有关问题

更新时间: 2014-01-05 02:58:17 责任编辑: Author_N1

 

关于mapx动态创建图层的问题
我在进行动态创建图层的时候,会重复进行创建,当第二次创建时,就会报错Non-Unique Name specified. (Name already in use by another object).我怎么判断这个图层已经创建,并且删除他?

CMapXLayerInfo 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(\"peirenlei\") ); 
        LayerInfo.AddParameter(\"Name\" , COleVariant(\"peirenlei\")  ); 
        LayerInfo.AddParameter(\"Fields\", vFields ); 
        //////////////////////////////////////////////

        m_ctrlMapX.GetLayers.Add( LayerInfo ); //////////////////////////////////////////////
        //当第二次创建时,就会报错Non-Unique Name specified. (Name already in use by another object).
        //我怎么判断这个图层已经创建,并且删除他?


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


--参考方法--
不要用数字作为图层名..
判读图层是否存在我以前的方法很笨..遍历所有图层,看是否和要加的名称相同
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:58:17
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/16768/
本文WWW.DOC100.NET DOC100.NET版权所有。