cesium 面积测量 代码
时间: 2023-09-30 08:09:36 浏览: 105
以下是一个测量 Cesium 中多边形面积的示例代码,使用了 Cesium 的 CesiumMath 和 PolygonPipeline 两个模块:
```javascript
var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;
var cartesian3Array = []; // 存储多边形顶点坐标的数组
// 点击多边形的每个顶点,将其坐标存储到数组中
var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function(event) {
var position = scene.pickPosition(event.position);
if (Cesium.defined(position)) {
cartesian3Array.push(position);
var point = viewer.entities.add({
position: position,
point: {
pixelSize: 8,
color: Cesium.Color.YELLOW
}
});
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
// 点击右键结束多边形绘制
handler.setInputAction(function(event) {
var polygon = viewer.entities.add({
polygon: {
hierarchy: new Cesium.PolygonHierarchy(cartesian3Array),
material: Cesium.Color.RED.withAlpha(0.5)
}
});
// 计算面积
var area = Cesium.PolygonPipeline.computeArea2D(cartesian3Array);
console.log('Area:', area);
cartesian3Array = []; // 清空数组
}, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
```
该代码使用鼠标左键点击多次来绘制多边形,然后在最后一次右键点击时计算出多边形的面积,并输出到控制台中。
阅读全文