Buffer Analysis
DMap3D.analysis.bufferAnalysis is used to create buffer zones around specified geometries (points, lines, polygons).
Import
import DMap3D from 'dmap3d'
import * as Cesium from 'cesium'
Basic Usage
const viewer = new Cesium.Viewer('cesiumContainer')
// Create buffer analysis tool
const buffer = new DMap3D.analysis.bufferAnalysis(viewer)
// Listen for analysis complete event
buffer.onAnalysisEnd((result) => {
console.log('Buffer distance:', result.bufferDistance, 'meters')
console.log('Buffer area:', result.bufferArea, 'square meters')
})
// Activate analysis
buffer.activate()
Constructor
new DMap3D.analysis.bufferAnalysis(viewer, options?)
Parameters:
viewer- Cesium.Viewer instanceoptions?- Optional configuration
Options:
interface BufferAnalysisOptions {
bufferDistance?: number // Buffer distance (meters), default 50
geometryType?: 'polygon' | 'polyline' | 'point' // Geometry type, default 'polygon'
originalColor?: string // Original geometry color, default '#FFFF00'
bufferColor?: string // Buffer zone color, default '#FF0000'
originalAlpha?: number // Original geometry opacity, default 0.6
bufferAlpha?: number // Buffer zone opacity, default 0.3
}
Methods
activate()
Activate drawing functionality, drawing shapes according to the set geometry type.
buffer.activate()
deactivate()
Deactivate drawing functionality.
buffer.deactivate()
clear()
Clear all shapes and buffer zones.
buffer.clear()
setBufferDistance(distance)
Set buffer distance (1-100000 meters).
buffer.setBufferDistance(200)
setGeometryType(type)
Set geometry type.
buffer.setGeometryType('polyline') // 'polygon' | 'polyline' | 'point'
getBufferResult()
Get analysis result.
const result = buffer.getBufferResult()
if (result) {
console.log('Buffer area:', result.bufferArea)
}
onAnalysisEnd(callback)
Register analysis complete callback.
buffer.onAnalysisEnd((result) => {
console.log('Buffer distance:', result.bufferDistance)
console.log('Buffer area:', result.bufferArea)
})
destroy()
Destroy the tool and release resources.
buffer.destroy()
Analysis Result
interface BufferResult {
originalPositions: Cesium.Cartesian3[] // Original geometry coordinates
bufferPositions: Cesium.Cartesian3[] // Buffer zone coordinates
bufferDistance: number // Buffer distance (meters)
originalArea?: number // Original geometry area (square meters)
bufferArea: number // Buffer zone area (square meters)
}
Complete Example
const viewer = new Cesium.Viewer('cesiumContainer')
// Create buffer analysis tool
const buffer = new DMap3D.analysis.bufferAnalysis(viewer, {
bufferDistance: 100,
geometryType: 'polygon',
originalColor: '#00FF00',
bufferColor: '#FF0000',
bufferAlpha: 0.3
})
// Listen for analysis complete
buffer.onAnalysisEnd((result) => {
console.log(`Original area: ${result.originalArea?.toFixed(2)} square meters`)
console.log(`Buffer area: ${result.bufferArea.toFixed(2)} square meters`)
})
// Activate analysis
buffer.activate()
// Switch geometry type
buffer.clear()
buffer.setGeometryType('polyline')
buffer.setBufferDistance(50)
buffer.activate()
// Destroy
buffer.destroy()