Slope Measurement
DMap3D.measurement.slope is used to measure the slope (pitch angle) between two points in 3D space.
Import
import DMap3D from 'dmap3d'
import * as Cesium from 'cesium'
Basic Usage
const viewer = new Cesium.Viewer('cesiumContainer')
// Create slope measurement tool
const slopeTool = new DMap3D.measurement.slope(viewer)
// Start measurement (left-click two points: start and end)
slopeTool.start()
// Slope value displayed in real-time, format: Slope: XX° (XX%)
Constructor
new DMap3D.measurement.slope(viewer)
Create a slope measurement tool instance. Inherits from MeasureBase base class.
Parameters:
viewer- Cesium.Viewer instance
Methods
start()
Start slope measurement. The user left-clicks two points (start and end points), and the slope value is displayed in real-time at the midpoint of the line segment.
slopeTool.start()
end()
End measurement, keeping the drawn results.
slopeTool.end()
clear()
Clear all measurement results.
slopeTool.clear()
destroy()
Destroy the tool and release resources.
slopeTool.destroy()
updateConfig(config)
Dynamically update style configuration.
slopeTool.updateConfig({
pointColor: '#FF0000', // Measurement point color
pointSize: 10, // Measurement point size (pixels)
lineColor: '#00FF00', // Measurement line color (arrow material)
lineWidth: 3, // Measurement line width (arrow auto-scaled 3x)
fontColor: '#FFFF00', // Slope label text color
fontSize: 16 // Font size (pixels)
})
Configuration Options
| Property | Type | Default | Description |
|---|---|---|---|
pointColor | string | '#ffc403' | Measurement point color |
pointSize | number | 8 | Measurement point size (pixels) |
lineColor | string | '#12e184' | Measurement line color (arrow material) |
lineWidth | number | 2 | Measurement line width (pixels) |
fontColor | string | '#ffc403' | Slope label text color |
fontSize | number | 14 | Font size (pixels) |
Slope Calculation
Slope is calculated based on the ENU (East-North-Up) local coordinate system:
- Angle: The angle between the vector and the horizontal plane (pitch angle), in degrees
- Percentage:
tan(pitch angle) * 100, representing the height change percentage per 100 meters of horizontal travel
Complete Example
const viewer = new Cesium.Viewer('cesiumContainer')
// Create slope measurement tool
const slopeTool = new DMap3D.measurement.slope(viewer)
// Custom styles
slopeTool.updateConfig({
pointColor: '#FF0000',
lineColor: '#00FFFF',
fontColor: '#FFFF00',
fontSize: 16
})
// Start measurement
slopeTool.start()
// Left-click two points, slope is calculated and displayed automatically
// Display format: Slope: 15.30° (27.3%)
// Clear and remeasure
slopeTool.clear()
slopeTool.start()
// Destroy
slopeTool.destroy()