在TE的开发中,画面的时候,除了在贴地情况下,面状对象可以按照地形的方式贴在地上,其他的相对地面和绝对高度,都是一个平面的效果,画线的时候也面临同样的情况,这样在TE的球面mpt中,按照一个中心点设置面的位置,就会导致有些面或者线的部分在地底下,效果相当不好,而到目前未见更新此处的api。
在cesium的三维中,就可以直接画曲面或者曲线,参见Cesium系列:加载不规则形状出图,并且可以贴上图片作为纹理显示。
如何使用TE的api在地图上画一个曲面或者曲线,至少能按照地形的方式显示出来起伏呢,按照起伏做个三维模型对象,是可以考虑的方式,不过需要数据人员制作,这里说一种参照高程数据的思路,通过插值的方式,画多个面代替一个面。
线的画法就比较简单了,通过一定的距离,插值中间的数据,插值越多,线就显着圆滑,参见TE地图上画饼状图,点足够多的时候,都能在地图上画出来圆形。
画面的时候,可以从面中取采样点,每个点都有相对地表的高度,这个采样点,可以根据面状对象的四至范围,按照横向和纵向坐标均匀获取,密度越高,面跟地形的符合度就越高,不规则的面状对象,多余的点,可通过点是否在面中进行数据过滤,点过滤完成后,每3个点连接成一个三角形,这个规则在互联网上能搜到对应的算法,三角形连接完成后,就形成了一个类似高程的三角格网,将这些三角形在地图上画出来,就会形成一个跟高程走势差不多的面。
这些三角形按照api去掉边线,填充上颜色,就会显示的像一个。
三维模型也可以根据三角格网生成,根据模型的格式,将上边的数据生成模型,而且模型上还可以填充贴图。
规则的多边形面,有对应的贴图的文件,根据多边形的范围和图片的太小,通过数据插值,填充上边三角形中的颜色数据,形成一个类似的贴图效果,图片本身就是颜色组成的。