多面体(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)需要人为的节点级控制生成多面体。通过开发接口组织有序节点生成三角形(最常见的是三角形),再拼接成多面体。该方法主要用于生成无规律三维模型,比如复杂地质体等,地质、地铁等行业需要对地层、矿产等不规则形状物体进行三维模拟。

对于前两种情况,用户一般不需要了解多面体内部结构,只需要用相应接口自动生成,但对于第三种情况,为了能让我们“知其所以然”,我将通过几篇博客进行多面体的内部结构解析。

==============未完待续==============

最新文章

  1. 基于HTML5实现3D热图Heatmap应用
  2. 吐槽scala
  3. bootstrap无限级分类 jq拓展 之前的无限级分类的封装版~
  4. hadoop从非HA转到NAMENODE HA时需要注意的一个问题
  5. Mac配置一些开发环境(随时补充)
  6. shell text process code
  7. Elasticsearch分布式搜索集群配置
  8. 2016年度 JavaScript 展望(下)
  9. apache 2.4 针对某个文件限速
  10. ORACLE时间函数(SYSDATE)深入理解
  11. Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] B. "Or" Game 线段树贪心
  12. Drbd 安装配置
  13. mybatis数据库数据分页问题
  14. java.util.zip.GZIPInputStream.readUByte,Not in GZIP format错误处理
  15. 转: OGG Checkpoint 详解
  16. 微信小程序movable-view移动图片和双指缩放
  17. STS中applicationContext.xml配置文件
  18. SublimeText3追踪函数工具CTags设置及使用
  19. 28、gulp
  20. spring cloud实战与思考(四) JWT之Token主动失效

热门文章

  1. C++ strcpy strcpy_s strncpy strlcpy
  2. PHP - 使用 Pear 进行安装和卸载包
  3. BZOJ 1531: [POI2005]Bank notes( 背包 )
  4. 前端面试题整理(js)
  5. pssh,pscp,pslurp使用实践
  6. 关于android多点触控
  7. C#、WinForm、ASP.NET - SQLHelper.cs
  8. java实现小九机器人接口
  9. 十分钟开发一个调用Activity的PhoneGap插件
  10. Swift - 实现点击UITableView单元格时自动展开单元格