[TOC]
WebGIS 三维开发中,关于传统的空间面积测量有时候会让刚接触的人疑惑,因为在不同的系统中,种类似乎不同,诸如空间面积,贴地面积,地表漫长,表面面积,水平面积等。这些不同系统之间不同的表达,可能是因为业务需求不同导致的差异,在我的归纳中,只有三种类型,空间面积,表面面积和投影面积。
包含三个或三个以上的空间点,按给定顺序连接构成的一个或多个多边形,据坐标点位置不同,有时候会构成一个水平面上的单个多边形,有时候是若干个水平面上的多边形。要计算它们的面积,步骤很简单,直接将多边形分解成一个个的三角面,逐一计算三角面积然后累加即可。
顾名思义,就是地球表面的多个坐标点形成的多边形内地表的面积。流程上和计算空间面积一样,依然是分解成三角形,但是地球表面因为地形的存在,起伏变化,不是一个光滑的平面,给计算带来困难。
这时需要构造三角网拟合地表。在Cesium中可以通过计算地形瓦片的方式获取瓦片顶点从而构造出不规则的三角网。另一个可行的方法是通过内插生成三角网,步骤是首先计算多边形的最小外包矩形,接着根据矩形范围给定一个固定的距离进行插值,生成统一间距的三角格网,然后使用多边形裁剪,仅保留分析范围内的网格,这种方法生成的是规则的三角网。
不管是通过不规则还是规则三角网进行的地表面积计算,本质上都是拟合,误差不可避免,特别是后者,格网间距对于误差的影响特别大,选择一个合适的间距至关重要。
地球表面多个坐标点构成的多边形,将将投影到地球表面(注意,这里的表面不包括地形,而是指水准面)后的面积。投影之后仍然通过分解的方式计算面积,但考虑到地球表面并不是一个平面而是曲面,如果拆分之后的三角形范围过大,在计算的时候应考虑曲率的影响,选取Vincenty或者大圆面积等合适的算法。