剖面分析,是一种项目中常见的地形分析工具:主要是根据用户点选的2个点位,系统自动沿两点之间的曲线对地形进行插值采样,得到沿线的海拔数据,最后用图表绘制高程走势图。
通过高程走势图,可以清晰的看到途经山坡、山谷的起伏情况,可以帮助我们更直观理解当前地形状况。
应用场景
实现原理
交互采点:通过 ScreenSpaceEventHandler
捕捉鼠标点击,使用 scene.pickPosition
从深度缓冲获取地表三维坐标;
动态绘线:使用 CallbackProperty
将线段的 positions
与当前鼠标位置绑定;
坐标插值:在起终点间通过 Cartesian3.lerp
均匀插值生成若干采样点;
地形采样:将插值点转为 Cartographic
后,调用 sampleTerrainMostDetailed
从地形服务获取最精细的高程;
数据可视化:将最终得到的高程数据传给 ECharts
,绘制折线趋势图;
上手撸
事件交互
首先这个功能需要我们动手选取想剖析的2个点划出的横截面。
以下代码基本上每一行都添加了详细的注释:
beginDraw() {
*// 左键点击:拾取起点与终点*
this.[ viewer.s