428

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、64位系统下使用SuperMap Objects .Net程序

方法:在vs中使用x86环境编译程序,部署使用即可。

适用于包含win32控件或dll的应用程序在64操作系统中不能运行时使用。

2、获取三维中选中物体Selection3D对应的GeoModel

方法:

1 Selection3D[] selections = m_SceneControl.Scene.FindSelection(true);
2 if (selections.Length > 0)
3 {
4     Selection3D selection = selections[0];
5     Layer3D layer = selection.Layer;
6     Recordset rect = selection.ToRecordset();
7     Geometry geom = rect.GetGeometry();
8     GeoModel selectGeo = geom as GeoModel;
9 }

适用于需要获取选中的三维物体的一些属性信息,如高度、位置等。
3、在Scene中需要获取到一个经纬坐标对应点的高度值,根据地形有关,没有地形数据获取到的值为贴地高度

4、添加新的GeoModel

第一步:通过GeoModel类对象将第三方三维模型导入,该步骤可参见章节2.4中的相关内容。 bool GeoModel. FromFile(String file,Point3D position) ;

第二步:新建一个DatasetVector数据集(矢量数据集),类型设置为CAD(复合数据集)。通过DatasetVector类对象的Recordset属性创建出Recordset(记录集)对象。 DatasetVector datasetvector = datasource. Datasets().Create(datasetVectorInfo); Recordset recordset = datasetvector.getRecordset(true, CursorType.Dynamic);

第三步:通过Recordset对象中的AddNew方法,将第一步中的GeoModel对象作为参数传入,将模型文件传入记录集。AddNew方法的参数为Geometry对象,GeoModel对象是Geometry对象的子对象,因此可以将GeoModel对象作为参数传入。 recordset.AddNew(geoModel);

参考《二三维一体化》技术文档

 

posted on 2012-06-11 14:09  428  阅读(605)  评论(0编辑  收藏  举报