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