本文主要介绍了 基于 Cesium 实现体积计算的方法介绍,前几天做项目时候遇到客户提出加入体积计算的项目要求,琢磨了几天,终于搞出来了,在此将一些经验进行
测算效果图
本工具实现的鼠标选取区域并进行体积计算功能。
代码实现
首先记录选取区域 代码片
.
//装载鼠标点迹集合
dataSource = new Cesium.CustomDataSource("volumeEntity");
Cesium.Viewer.dataSources.add(this.dataSource);
根据选取区域进行体积土方量计算核心代码 代码片
.
//计算体积
function VolumeAnalysis (points) {
var minHeight = 15000, lonlats = [];
for (var i = 0; i < points.length; i++) {
var cartographic = Cesium.Cartographic.fromCartesian(points[i]);
var height = this.map.scene.globe.getHeight(cartographic);
if (minHeight > height)
minHeight = height;
//经纬度值
var lng = Cesium.Math.toDegrees(cartographic.longitude),
lat = Cesium.Math.toDegrees(cartographic.latitude);
lonlats.push(lng, lat, 0)