实现在二三维场景中同时编辑相同的地物

时间:2013-4-15    作者:悬浮的青春    分类:



ae和skyline二三维联动修改

分别在两个窗口导入二维平面矢量图(shp)与对应的三维立体效果图(fly)。

二者是对应起来的,二维平面中有某一要素,三维场景也会有某要素。

如在三维中删去该要素后,对应地删去二维矢量要素
一、完结思路
1.首要获取三维场景中的方针的相关特色,(这里只用到了坐标);
2.删去三维场景中的地物;
3.根据在三维场景中的坐标,并在将其同步传给二维场景的基础之上,可以找到对应的地物了;
4.删去二维场景中的矢量要素即可。
二、具体完结方法:

TerraExplorer.OnLButtonDown += new _ITerraExplorerEvents5_OnLButtonDownEventHandler(mTEClass_OnLButtonDown);//将工作托付给左键单击。

void mTEClass_OnLButtonDown(int Flags, int X, int Y, ref object pbHandled)
{
irender.screentoworld(X, Y, ref longobjecttype, out doubleX, out doubleH, out doubleY, out ID);
int id=iobjectmanager51.getinfotreeitemid(convert.tostring(ID));
iinformationtree5.delete(id);//删去三维场景中的地物

ipoint.x=X;ipoint.y=Y;
igeometry=(igeometry)ipoint;
ispatialfilter.geometry=igeometry;
ispatialfilter.spatialrel=esrispatialrelenum.esrispatialrelintersects;
ifeaturelayer=axmapcontrol1.get_layer(0);//简单化,只加入了一个图层。
ifeaturecursor=ifeaturelayer.search(ispatialfilter,false);
ifeature=ifeaturecursor.nextfeature();//运用esrispaticalrelintersects的方法获取与坐标相交的地物。
//此时获取的要素现已是二维的要素了。

ifeature.delete();//要素的删去。
}

到此,二、三维一同删去对应要素。

标签: skyline二次开发

WRITTEN BY

avatar