跳到主要内容

坡度测量

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 // 字体大小(像素)
})

配置项

属性类型默认值说明
pointColorstring'#ffc403'测量点颜色
pointSizenumber8测量点大小(像素)
lineColorstring'#12e184'测量线颜色(箭头材质)
lineWidthnumber2测量线宽度(像素)
fontColorstring'#ffc403'坡度标签文字颜色
fontSizenumber14字体大小(像素)

坡度计算

坡度基于 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()

相关链接