|
cszcsz79 :
新手请教:请教一下图层是否有Feature的函数!
用来做某些菜单是否可用!谢谢!查了半天Layer属性也没找到,向高手学习!
cszcsz79 :
顺便问一下将某一个图层的Feature全部去除的函数?
James.Liu :
Layer.allfeatures()函数可以渠道所有图元
没有取出图层所有FEATURE的函数,
1。可以考虑用循环layer.deletefeature来逐个删除图元,
2。如果这个图层是临时图层,可以用layers.remove图层,再用layerinfo对象新建一个同样的图层,这样效率更高些
cszcsz79 :
CMapXLayer layer = m_ctrlMapX.GetLayers().Item("user"); CMapXFeature fea; for(int i=layer.AllFeatures().GetCount();i>0;) { layer.DeleteFeature(fea.GetKeyvalue()); } 帮忙看看为何删除不了。编译通过,运行到layer.DeleteFeature(fea.GetKeyvalue())时报错。 顺便问一下:为什么图层中没有图元了layer.AllFeatures().GetCount()还为1,添加一个图元后变成2?
James.Liu:
layer.DeleteFeature(fea.GetKeyvalue());
之前你没有给FEA对象赋值,fea.GetKeyvalue()当然是个空值了
cszcsz79 :
如果我不知道FEA对象,只是想删除该层所有的图元,怎么给FEA对象赋值呢?
James.Liu :
layer.AllFeatures()得到的是一个features集合
fea?=features.item(1)得到第一个图元
cszcsz79 :
刘老大,调试成功,谢谢!代码如下: CMapXLayer layer = m_ctrlMapX.GetLayers().Item("user"); layer.SetEditable(TRUE); CMapXFeature fea; CMapXFeatures features; do{ features=layer.AllFeatures(); fea =features.Item(1); layer.DeleteFeature(fea); } while(layer.AllFeatures().GetCount()>0); layer.Refresh();
|