Skip to main content

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 instance
  • options? - 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()