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);
参考《二三维一体化》技术文档