坡度测量
DMap3D.measurement.slope 用于测量三维空间中两点之间的坡度(俯仰角)。
引入
import DMap3D from 'dmap3d'
import * as Cesium from 'cesium'
基本用法
const viewer = new Cesium.Viewer('cesiumContainer')
// 创建坡度测量工具
const slopeTool = new DMap3D.measurement.slope(viewer)
// 开始测量(左键点击两个点:起点、终点)
slopeTool.start()
// 坡度值实时显示,格式:坡度: XX° (XX%)
构造函数
new DMap3D.measurement.slope(viewer)
创建坡度测量工具实例。继承自 MeasureBase 基类。
参数:
viewer- Cesium.Viewer 实例
方法
start()
开始坡度测量。用户左键点击两个点(起点和终点),坡度值实时显示在线段中点位置。
slopeTool.start()
end()
结束测量,保留已绘制的结果。
slopeTool.end()
clear()
清除所有测量结果。
slopeTool.clear()
destroy()
销毁工具并释放资源。
slopeTool.destroy()
updateConfig(config)
动态更新样式配置。
slopeTool.updateConfig({
pointColor: '#FF0000', // 测量点颜色
pointSize: 10, // 测量点大小(像素)
lineColor: '#00FF00', // 测量线颜色(箭头材质)
lineWidth: 3, // 测量线宽度(箭头自动放大 3 倍)
fontColor: '#FFFF00', // 坡度标签文字颜色
fontSize: 16 // 字体大小(像素)
})
配置项
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
pointColor | string | '#ffc403' | 测量点颜色 |
pointSize | number | 8 | 测量点大小(像素) |
lineColor | string | '#12e184' | 测量线颜色(箭头材质) |
lineWidth | number | 2 | 测量线宽度(像素) |
fontColor | string | '#ffc403' | 坡度标签文字颜色 |
fontSize | number | 14 | 字体大小(像素) |
坡度计算
坡度基于 ENU(东-北-天)局部坐标系计算:
- 角度: 向量与水平面的夹角(俯仰角),单位为度(°)
- 百分比:
tan(俯仰角) * 100,表示每前进 100 米,高度变化的百分比
完整示例
const viewer = new Cesium.Viewer('cesiumContainer')
// 创建坡度测量工具
const slopeTool = new DMap3D.measurement.slope(viewer)
// 自定义样式
slopeTool.updateConfig({
pointColor: '#FF0000',
lineColor: '#00FFFF',
fontColor: '#FFFF00',
fontSize: 16
})
// 开始测量
slopeTool.start()
// 左键点击两个点,坡度自动计算并显示
// 显示格式:坡度: 15.30° (27.3%)
// 清除并重新测量
slopeTool.clear()
slopeTool.start()
// 销毁
slopeTool.destroy()