一个可点击选择位置的以创建多边形的entities,并且对这个entities进行面积的计算。
提供Cesium的网址,以作参考:https://cesiumjs.org/
具体如图:
下面是script部分的代码,细节有注释,html部分的自己发挥,viewer本文是在全局引入,根据自己情况设置
<script>
export default {
name: "test",
data() {
return {
chooseButtonOpen: false,
polygonArray: [],
point: {},
polygon: null,
worldPositionArray: null,
area: '',
}
},
methods: {
//获取屏幕坐标点为弧度
getPositionCartographic(movement) {
let windowPosition = movement.position || movement.endPosition; //判断是点击还是鼠标移动
let ray = this.viewer.camera.getPickRay(windowPosition);//此为Cartesian3坐标
let position = this.viewer.scene.globe.pick(ray, this.viewer.scene);
let cartographic = this.viewer.scene.globe.ellipsoid.cartesianToCartographic(position); //转换成弧度
let latitude = Cesium.Math.toDegrees(cartographic.latitude);//纬度
let longitude = Cesium.Math.toDegrees(cartographic.longitude);//经度
let height = cartographic.height;
let nowPosition = {latitude: latitude, long