版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章三维分析目录
1目录1三维数据模型23TIN数据多面体8SceneControl三维可视化9基于GlobeControl的三维数字校园GlobeControl三维可视化10简介(1)三维数据(X,Y,Z)的定义中包含一个额外的维度:Z值(2)Z值具有测量单位,能存储和显示更多的信息Z值可表示很多内容,如:海拔高度、深度、温度、化学物浓度、噪声指数等(3)Z值是二维数据成为三维数据的标志(4)ArcGIS中三维数据有3D要素数据和表面数据两种形式1.三维数据模型23D要素数据(1)3D要素数据用来表示离散的对象,每个对象的信息都存储在要素的几何和属性中(2)3D要素数据又分为三维点数据、三维线数据和多面体(MultiPatch)数据(3)多面体数据根据组成方式的不同又分为Triangle
Strip、Triangle
Fan和Ring三种类型1.三维数据模型3TriangleStripTriangleFanRing表面数据(1)表面数据是指具有空间连续特征的地理要素的集合(2)表示地球表面某部分或整体范围内的地理要素或现象。(3)ArcGIS中常用的表面数据有:栅格表面--通过栅格数据(行和列的形式)呈现的表面不规则三角网(TIN)--以数字形式表示表面形态Terrain数据集--一种基于TIN的数据集1.三维数据模型4简介(1)MultiPatch几何类型又叫多面体数据类型(2)多面体数据类型(MultiPatch)是ESRI公司于1997年推出的一种数据模型(3)多面体数据类型主要用来定义3D对象的描述性外壳(4)MultiPatch通过地理数据库和ShapeFile文件来存储3D要素,如建筑物、地质体等2.多面体5MultiPatch创建在ArcGIS中创建MultiPatch方法有以下3种:(1)通过某些地理处理(Geoprocessing)工具创建
例如Extrude
Between、Layer
3DtoFeatureClass等(2)通过从已有的模型中导入ArcGIS创建
例如SketchUp、COLLADA、3DStudioMax或OpenFlight等(3)通过在ArcGIS
Engine中编写代码创建2.多面体6MultiPatch创建(1)在ArcGIS
Engine中创建MultiPatch几何对象主要用到IGeometryCollection和IConstructMultiPatch两个接口(2)这两个接口创建MultiPatch的方式略有不同:IGeometryCollection接口:通过添加各个组件的组成部分来创建MultiPatchIConstructMultiPatch接口:是通过操作Geometry对象来创建MultiPatch
如拉伸Polyline对象(拉伸为墙)和Polygon对象(拉伸为多面体)等(3)这两种方法的创建步骤相似,将要创建的MultiPatch显示出来需要用到IGeometryCollection、IGraphicsContainer3D、IPoint、IPointCollection、IGeometry、IElement
等接口2.多面体7MultiPatch创建2.多面体8实例按钮功能介绍按钮名称按钮功能创建axes创建一个带有箭头的三维坐标轴创建TriangleStrip创建一个TriangleStrip样式的阶梯创建TriangleFan创建一个TriangleFan样式的棱锥创建Triangles创建Triangles样式的多个三角片创建Ring创建一个Ring样式的迷宫创建RingGroup创建四个Ring样式的正方形环Extrusion拉伸一个正方形为棱柱Composite创建一个综合的房子样式MultiPatch创建2.多面体9实现思路(1)生成新的点对象,并将其添加到集合中(2)将点对象转换为一个Geometry对象(3)实例化一个元素对象,并将该元素对象的Geometry属性设置为上一步骤得到的Geometry对象(4)设置元素对象显示时使用的符号(5)刷新视图,显示元素注:详细代码可查看程序MultiPatch创建2.多面体10效果展示MultiPatch编辑2.多面体11MultiPatch的编辑操作主要有移动、旋转和缩放等。通过ITransform3D接口的Move3D、RotateVector3D和Scale3D等方法能实现MultiPatch的编辑操作。实现思路(1)得到某一图层的某个3D要素的几何形状(2)将该几何对象转换为ITransform3D类型对象(3)对得到的对象进行相应的编辑(4)开始编辑,将要素的Shape设置为编辑后的几何要素(5)保存、停止编辑MultiPatch编辑2.多面体12核心代码MultiPatch编辑2.多面体13效果展示图中展示的是将MultiPatch在X、Y、Z方向以1:1:3的比例变换后的结果,可以输入相应的参数进行MultiPatch的平移、旋转和缩放操作。MultiPatch分析2.多面体14MultiPatch的分析主要有:获取体积、表面积,判断两个MultiPatch之间是否相连及在某一值范围内是否临近,MultiPatch之间的相交、差异、联合等运算分析获取MultiPatch的体积和表面积需要用到IArea3D接口和IVolume接口实现思路(1)获取某个图层中的一个多面体的几何形状(2)获取Area属性和Volume属性(3)显示结果MultiPatch分析2.多面体15核心代码获取MultiPatch的体积和表面积MultiPatch分析2.多面体16效果展示获取MultiPatch的体积和表面积MultiPatch分析2.多面体17判断MultiPatch相连与邻接需要用到IRelationalOperator3D2接口实现思路(1)获取一个或多个图层中的两个多面体的几何形状(2)判断是否相连或者输入一个距离容差判断是否邻接(3)显示结果MultiPatch分析2.多面体18判断MultiPatch相连与邻接核心代码MultiPatch分析2.多面体19判断MultiPatch相连与邻接效果展示MultiPatch分析2.多面体20MultiPatch之间的差异、相交、联合(1)多面体的差异计算是求出两个闭合多面体要素的几何交集,然后从一个要素中剪除两要素类的交集,并将结果保存到新输出的要素类中(2)多面体相交是计算两个或多个多面体要素的几何交集,将重叠的要素输出为新要素(3)多面体联合是计算重叠多面体的几何交集,然后将多面体几何联合在一起,存储到新的多面体要素类中MultiPatch分析2.多面体21MultiPatch之间的差异、相交、联合
需要调用Analyst3DTools类库中的GP(Geoprocessing,地理处理工具)工具实现,只需要设置相应工具的输入参数即可。实现思路(1)选择GP工具(2)为每个工具设置输入参数和输出参数(3)执行GP工具,显示所有结果MultiPatch分析2.多面体22MultiPatch之间的差异、相交、联合核心代码MultiPatch分析2.多面体23MultiPatch之间的差异、相交、联合核心代码MultiPatch分析2.多面体24MultiPatch之间的差异、相交、联合效果展示多面体的差异简介3.TIN数据25(1)TIN是表示三维表面非常有效的工具(2)TIN常表示地球自然表面、各类现象的趋势面等(3)在GIS的三维地形可视化领域中有着广泛的应用
因为TIN能较好地表示地理现象的三维可视化加载TIN数据3.TIN数据26
加载TIN数据集需要用到ITINWorkspaceFactory接口、ITINWorkspace接口、ITIN接口和ITINLayer接口实现思路(1)获取TIN数据的文件路径(2)实例化一个TIN的工作空间工厂类对象(3)提取TIN中的数据,并将其转化为一个图层(4)添加图层并进行刷新,以显示TIN加载TIN数据3.TIN数据27核心代码加载TIN数据3.TIN数据28效果展示创建TIN数据3.TIN数据29
在ArcGIS中,创建TIN的方式有三种,分别是:由矢量要素创建TIN、由栅格要素创建TIN和由Terrain数据集创建TIN。由矢量要素创建TIN(1)由矢量数据创建TIN需要用到ITINEdit接口(2)使用ITINEdit接口创建TIN有以下两种方法:一种是加载有限个三维点数据创建TIN
一种是加载矢量数据图层创建TIN创建TIN数据3.TIN数据30由矢量要素创建TIN核心代码创建TIN数据3.TIN数据31由矢量要素创建TIN效果展示由离散点图层创建TIN的结果注:生成TIN前要先选择点图层和设置TIN的保存路径创建TIN数据3.TIN数据32由栅格数据创建TIN(1)由栅格数据创建TIN,需要用到ITINEdit接口:
AddFromPixelBlock方法--加载栅格单元创建TIN
SaveAs方法--保存创建的TIN数据(2)栅格转TIN常用于将数字高程模型(DEM)获得的栅格转换为TIN表面注:详细代码可查看程序创建TIN数据3.TIN数据33由栅格数据创建TIN效果展示TIN表面分析3.TIN数据34基于TIN表面可以做的表面分析有以下5种:(1)计算TIN的体积、表面积和投影面积(2)获取TIN表面某点的三维坐标、坡度和坡向(3)生成TIN表面某点所在的等高线和最陡路径(4)获取TIN表面坡度、坡向图(5)绘制TIN表面剖面线TIN表面分析3.TIN数据35计算TIN的体积、表面积和投影面积,需要用到ISurface接口,通过ISurface接口的GetVolume方法、GetSurfaceArea方法和GetProjectedArea方法获得相应结果。计算TIN的体积、表面积和投影面积实现思路(1)获取TIN图层,并得到TIN表面(2)设置基本高度和投影方向(3)获取结果显示TIN表面分析3.TIN数据36计算TIN的体积、表面积和投影面积核心代码TIN表面分析3.TIN数据37计算TIN的体积、表面积和投影面积核心代码TIN表面分析3.TIN数据38计算TIN的体积、表面积和投影面积效果展示TIN表面分析3.TIN数据39获取TIN表面某点的三维坐标、坡度和坡向获取TIN表面某点的三维坐标、坡度和坡向信息,需要用到ISurface接口,通过ISurface接口的GetElevation方法、
GetSlopeDegrees方法和GetAspectDegrees方法获得相应信息。实现思路(1)获取TIN图层,并得到TIN表面(2)点击TIN表面一点,获得该点信息(3)显示该点信息TIN表面分析3.TIN数据40获取TIN表面某点的三维坐标、坡度和坡向核心代码TIN表面分析3.TIN数据41获取TIN表面某点的三维坐标、坡度和坡向效果展示TIN表面分析3.TIN数据42生成TIN表面某点所在的等高线和最陡路径
获得TIN表面某点的高度及该点所在的等高线和最陡线,需要使用ISurface接口,通过ISurface接口的GetElevation方法、GetContour方法和GetSteepestPath方法获取相应信息。实现思路(1)获取TIN图层,并得到TIN表面(2)点击TIN表面一点,获得该点的高度信息、等高线和最陡线TIN表面分析3.TIN数据43生成TIN表面某点所在的等高线和最陡路径核心代码TIN表面分析3.TIN数据44生成TIN表面某点所在的等高线和最陡路径效果展示TIN表面分析3.TIN数据45获取TIN表面坡度、坡向图计算整个TIN表面坡度和坡向需要通过调用Analyst3DTools类库中的GP工具实现,在实现的过程中,只需要设置相应GP工具的参数即可。实现思路(1)添加Analyst3DTool引用,并对SurfaceSlope类和SurfaceAspect类进行实例化(2)设定TIN文件的路径和结果保存路径(3)运行GP工具,并显示结果TIN表面分析3.TIN数据获取TIN表面坡度、坡向图核心代码46TIN表面分析3.TIN数据获取TIN表面坡度、坡向图47效果展示TIN表面分析3.TIN数据48绘制TIN表面剖面线
绘制TIN表面剖剖面线反映沿表面上某条线前进时表面高程变化的情况。剖面线的绘制通常采用该区域的TIN表面,需要用到ISurface接口的GetProfile方法。实现思路(1)在表面绘制一条线(2)获得沿着该线的剖面线(3)读取剖面线的属性,并将其在坐标系中显示出来注:详细代码可查看程序TIN表面分析3.TIN数据49绘制TIN表面剖面线效果展示简介4.SceneControl三维可视化50(1)ArcGIS
Engine提供了两个显示三维的控件:SceneControl--对应于ArcGIS桌面产品中的ArcSceneGlobeControl--对应于ArcGIS桌面产品中的ArcGlobe(2)使用SceneControl可以实现三维地图的加载、浏览、二维数据以三维显示以及三维动画等三维数据加载4.SceneControl三维可视化51
在ArcGIS
Engine中加载ArcScence文档即是加载*.sxd格式文件,需要调用ISceneControl接口的LoadSxFile方法。实现思路(1)得到*.sxd文档的具体路径(2)检查*.sxd文档是否可用(3)如果可用,则将该文档加载到SceneControl控件中三维数据加载4.SceneControl三维可视化52核心代码三维数据加载4.SceneControl三维可视化53效果展示三维地图浏览4.SceneControl三维可视化54(1)在ArcScene中,三维地图浏览包括导航、放大、缩小、平移、全图、飞行、目标处居中、缩放至目标、设置观察点、选择要素与清除所选要素等(2)在ArcGIS
Engine中实现地图浏览操作的方式有两种:
一是不需编写任何代码,直接在ToolbarControl控件中添加相关工具即可
二是调用ICommand接口,对已经封装好的相关功能类进行实例化三维地图浏览4.SceneControl三维可视化55类名功能ControlsSceneFlyToolClass飞行ControlsSceneFullExtentCommandClass全图ControlsSceneNavigateToolClass导航ControlsSceneOpenDocCommandClass打开*.sxd文档ControlsScenePanToolClass漫游ControlsSceneSelectFeaturesToolClass单选要素ControlsSceneSetObserverToolClass设置观察点ControlsSceneTargetZoomToolClass放大至目标ControlsSceneZoomInOutToolClass放缩场景ControlsSceneZoomInToolClass放大三维浏览功能的类三维地图浏览4.SceneControl三维可视化56核心代码三维地图浏览4.SceneControl三维可视化57效果展示三维地图识别4.SceneControl三维可视化58
三维地图识别是指获取地图某一点上的所有图层信息,类似于ArcScene和ArcMap中的Identify工具。在ArcGIS
Engine的三维分析模块中,不能直接调用Identify工具,需要通过IHit3DSet和ISceneGraph接口编程实现。实现思路(1)在控件中单击某点,返回一个IHit3DSet类型对象(2)解析IHit3DSet对象包含的所有图层信息(3)以TreeView的形式显示信息三维地图识别4.SceneControl三维可视化59核心代码三维地图识别4.SceneControl三维可视化60核心代码三维地图识别4.SceneControl三维可视化61效果展示遥感影像图与三维地形叠加4.SceneControl三维可视化62
为了便于观察和分析,很多情况下需要将二维数据在三维表面上显示。如将遥感影像叠加在三维地形上,以便清楚地辨别各类地貌特征,便于增强对影像模式及其对地形相关性的理解。实现思路(1)加载TIN数据和影像数据(2)将影像图层的三维属性添加到I3DProperties类型的对象中(3)将BaseSurface属性设置为TIN表面(4)将三维信息应用到影像数据,并刷新视图遥感影像图与三维地形叠加4.SceneControl三维可视化63核心代码遥感影像图与三维地形叠加4.SceneControl三维可视化64效果展示矢量图层与地形叠加4.SceneControl三维可视化65
在实际应用中,很多时候需要将矢量数据叠加到三维地形上,以便直观地观察地理现象和表达地理要素。矢量数据与地形叠加的原理同影像与地形叠加的原理相似。核心代码矢量图层与地形叠加4.SceneControl三维可视化66效果展示三维动画4.SceneControl三维可视化67ArcGIS
Engine中,通过使用三维书签和制作关键帧来创建动画,需要用到BookMark3D类、IKeyframe接口、IAnimationTrack接口和IAnimationTracks接口。实现思路(1)将当前场景保存为三维书签,并创建一个关键帧(2)将所有的关键帧加入IAnimationTrack类型的对象(3)添加IAnimationTrack类型对象,并播放动画三维动画4.SceneControl三维可视化68核心代码三维动画4.SceneControl三维可视化69效果展示简介5.GlobeControl三维可视化70(1)GlobeControl对应于ArcGIS桌面产品中的ArcGlobe(2)ArcGlobe和ArcScene一样,都是3D可视化应用程序(3)ArcGlobe是基于地球视图,通常用于超大型数据集的显示(4)使用GlobeControl可以实现ArcGlobe数据加载、地图浏览和效果展示等三维数据加载5.GlobeControl三维可视化71
在ArcGIS
Engine中加载ArcGlobe文档即是加载*.3dd格式文件,需要调用IGlobeControl接口的Load3dFile方法。实现思路(1)得到*.3dd文档的具体路径(2)检查*.3dd文档是否可用(3)如果可用,则将该文档加载到GlobeControl控件中三维数据加载5.GlobeControl三维可视化72核心代码三维数据加载5.GlobeControl三维可视化73效果展示三维地图工具5.GlobeControl三维可视化74(1)在ArcGlobe中,三维地图工具包括导航、平移、全图、飞行、目标处居中、地球旋转、查找、识别和量测等(2)在ArcGIS
Engine中实现以上功能的方式有两种:
一是不需编写任何代码,直接在ToolbarControl控件中添加相关工具即可
二是调用ICommand接口,对已经封装好的相关功能类进行实例化三维地图工具5.GlobeControl三维可视化75类名功能ControlsGlobeFlyToolClass飞行ControlsGlobeNorthCommandClass向北ControlsGlobeFullExtentCommandClass全球ControlsGlobeTargetCenterToolClass目标居中ControlsGlobeFixedZoomInCommandClass固定比例放大ControlsGlobeSpinClockwiseCommandClass顺时针旋转ControlsGlobeSpinStopCommandClass停止旋转ControlsGlobeMeasureToolClass地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 氧化铝工艺课程设计方案
- 物业管理公司承包协议(2025年)
- 办公室合租协议书2025年
- 融资租赁合同样式二
- 核桃苗木购买合同书(2025年)
- 车位买卖协议书范本2025年
- 月结供应商合同2025年
- 反担保保证合同(2025年)
- 机械原理课程设计牛头刨床
- 2025年客户居间合同范本
- Unit 2 Different families(教学设计)-2024-2025学年人教PEP版英语三年级上册
- 西师大版五年级上册小数混合运算题100道及答案
- 2022年7月国家开放大学本科《中国法律史》期末纸质考试试题及答案
- 行政文秘笔试题
- 2024年部门年终工作总结参考(四篇)
- 主题四 第1课 节气与我们的生活(教学设计)教科版五年级下册综合实践活动
- 二年级数学上册口算天天练
- 肯耐珂萨题库
- 2024国家开放大学电大本科《液压气动技术》期末试题及答案
- 冷凝集素综合征治疗与护理研究进展
- 商务服务机器人技术现状与未来发展趋势研究
评论
0/150
提交评论