日期:2014-05-17  浏览次数:20876 次

一个超级简单而奇怪的问题
用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)每次取的时候应该不是指向同一个实例。