一个超级简单而奇怪的问题
用MapX5.0(GIS开发二次开发的)想实现编辑线的节点,如删除一个节点、增加一个节点等。我问的问题本身跟这些没有太多关系,只是介绍下背景。
下面的代码看起来没有什么区别,但是只有第一种方法可以,我一直想不通为什么?
以下都是想增加一个节点。
方法1:(可行)
Features fts = axMap1.Layers[1].AllFeatures; //得到所有线
Feature m_Fea = fts._Item(1); //得到第一条线
m_Fea.Parts._Item(1).AddXY(1.86, 1.7, 8); //给线增加一个节点
m_Fea.Update(true, new RowValuesClass()); //更新
方法2:(不可行)
Features fts = axMap1.Layers[1].AllFeatures; //得到所有线
fts._Item(1).Parts._Item(1).AddXY(1.86, 1.7, 8); //直接给第一 条线增加一个节点
fts._Item(1).Update(true, new RowValuesClass());//更新
会是MapX自身的问题吗?
------解决方案--------------------不好说
------解决方案--------------------
fts._Item(1)每次取的时候应该不是指向同一个实例。