多面体(multipatch)结构在ArcGIS数据结构中是与点、线、面平行的一种数据结构,对于ArcGIS三维来说是一个很核心的结构,有了它,ArcGIS平台才可以灵活的描述规则和不规则的三维实体。对于建筑物、道路这种相对规则的模型,GIS平台里ArcGIS能表达,其他GIS平台也能;但对于地质地层结构都不规则,需要节点级刻画的三维模型,很多GIS只能用三维点符号的形式显示,该方法的缺点是无法进行节点级生成、管理、编辑和分析,ArcGIS能做到就是因为多面体数据结构。
也许我们平时在做二维项目的时候不会涉及到多面体,但一旦涉及三维应用,尤其是需要根据真实描述地层等不规则结构的时候,就要深入研究多面体结构了。前面说了ArcGIS的多面体是可以节点级操作的,也就是说里面的每个节点都可以生成、查询、修改等,但并不意味着生成多面体一定要人为的每个节点坐标计算出来再加进去(虽然接口允许这样做)。ArcGIS生成多面体自动/手动来划分看,大致分为如下三种方法,前两种是相对自动化的,第三种是手动的,人为干预力度大:
1)工具导入法,即ArcGIS Toolbox中有 import 3d files的工具,可以将3ds,flt,vrml,skp,dae等第三方模型直接转换成多面体。CityEngine建模工程也可以直接导出成多面体。这是将模型从非GIS平台转入GIS平台的核心步骤,做三维城市中的建筑物,道路等模型经常采用此方法。
2)通过ArcGIS工具运算自动生成。该方法使用Toolbox中“Layer 3D to Feature Class”、三维空间运算的多个工具(Buffer 3D,Intersect 3D,Extrude Between等)在现有的GIS三维图层或数据基础上进行空间运算自动求解出新的多面体数据。该过程同上,也不需要人为的节点级干预,ArcGIS工具自己就处理了。该过程常用场景是通过三维管线符号化导出成三维管线多面体;空间分析求解两个多面体的交集等(雷达扫描范围与飞机飞行轨迹是否有相交,地质体剖面分析等)。
3)需要人为的节点级控制生成多面体。通过开发接口组织有序节点生成三角形(最常见的是三角形),再拼接成多面体。该方法主要用于生成无规律三维模型,比如复杂地质体等,地质、地铁等行业需要对地层、矿产等不规则形状物体进行三维模拟。
对于前两种情况,用户一般不需要了解多面体内部结构,只需要用相应接口自动生成,但对于第三种情况,为了能让我们“知其所以然”,我将通过几篇博客进行多面体的内部结构解析。
==============未完待续==============