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()