arcgis三维开发帮助文档(vb)

arcgis三维开发帮助文档(vb)

ID:12847405

大小:437.00 KB

页数:73页

时间:2018-07-19

arcgis三维开发帮助文档(vb)_第1页
arcgis三维开发帮助文档(vb)_第2页
arcgis三维开发帮助文档(vb)_第3页
arcgis三维开发帮助文档(vb)_第4页
arcgis三维开发帮助文档(vb)_第5页
资源描述:

《arcgis三维开发帮助文档(vb)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.ArcOjects3D开发方法简介一、ArcOjects3D开发方法简介众所周知,在ArcGIS3D分析扩展模块中提供了丰富的三维可视化和分析功能:你可以通过不同的视角查看表面数据,对表面数据进行查询,以及对表面数据进行坡度、坡向、视域分析等操作,进行三维动画模拟等等。其中所涉及的3D对象都是ArcObjects的一部分,针对3D的开发,实际上是ArcObjects的开发,所以具体的开发方法有:基于ArcScene中内嵌的VBA开发;通过VB、VC++等兼容COM的开发语言进行开发新的3D组件和功能。二、基本的3D对象模型在3D开发中,我们

2、可以用ArcMap对应ArcScene,其中MxDocument对象对应SxDocument对象,Map对象对应着Scene对象,而相对于Display显示对象,在ArcScene中有SceneGraph对象。在对象模型图的顶部是Application对象,从它我们可以执行和应用相关的任务,比如打开文档或者访问和应用相关的其它对象。在VBA中,我们可以直接获得Application对象:DimpAppasIApplicaitonSetpApp=Application如果你在VBDLL中实现命令和工具,那么在具体实例化这个类时你可以获得和Appl

3、ication对象挂接的钩子(hook):ImplementsICommandPrivatem_pAppasesriCore.IapplicationPrivateSubICommand_OnCreate(ByValHookAsObject)Setm_pApp=Hook…EndSub有了Application对象,你就可以访问它所包含的其它所有对象了。比如可以获得SxDocument对象,而它包含一个Scene对象,Scene对应的SceneGraph对象包含了一个或多个SceneViewer对象,每个SceneViewer对象中有一个Came

4、ra对象,它代表了观察点的特性。在Scene对象中可以访问Layer对象和GraphicsLayer3D对象,这两个对象都包含着一个3DProperties对象,用来控制图层中有关三维方面的特性。具体有关对象的特性可以参考联机帮助中对象上提供的接口所属的方法和属性。 2.3D几何模型和定制对象介绍3D模型可以包括两种:矢量模型和表面模型,表面模型包括TIN和Raster,有关表面模型的创建、数据结构访问和分析在本文中不做介绍。在此只介绍三维矢量模型的生成和访问等。3D矢量模型包括所有含有Z值的几何对象:点、线、面,以及MultiPatch(多片

5、)。其中多片又可以分为:三角条带(TriangleStrip)、三角扇(TriangleFan)和环(Ring)。在ArcScene中可以通过二维的点、线、面数据来构建三维模型,通过ArcScene中提供的拉伸功能可以将点要素构建成垂直的线,线要素构建成墙,而多边形要素构建成块,拉伸的值的大小可以是一定常数,也可以是通过要素属性字段中的值计算得出,或者通过数据自身记录的Z值。在ArcObjects中可以通过在Geometry几何对象构建过程中,任意点除了X、Y坐标值,指定坐标Z值来构建三维点、线和面对象;对于多片,则通过构建相应的Multipa

6、tch对象,并指定每一个顶点的X、Y和Z值。下面的代码描述了如何由多片来构建一个房子对象,它的房顶由三角扇构建,没有窗户的墙由三角条带构建,带窗户的墙由环构建。DimpMultiPatchAsesriCore.IMultiPatchSetpMultiPatch=NewMultiPatchDimpGeoColAsesriCore.IGeometryCollectionSetpGeoCol=pMultiPatchDimpPointsAsesriCore.IPointCollectionDimpPointAsIPoint‘创建屋顶SetpPoints

7、=NewesriCore.TriangleFanSetpPoint=NewPointpPoint.PutCoords5,4pPoint.Z=10pPoints.AddPointpPointSetpPoint=NewPointpPoint.PutCoords0,0pPoint.Z=5pPoints.AddPointpPoint‘屋顶的其它顶点:...(10,0,5);(10,8,5);(0,8,5);(0,0,5)‘将扇加到MultiPatchpGeoCol.AddGeometrypPoints‘为没有窗户的墙创建条带SetpPoints=New

8、esriCore.TriangleStrip‘添加条带顶点:...(10,0,5);(10,0,0);(10,8,5)...(10,8,0);(0,8

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。