合并
This commit is contained in:
@ -127,9 +127,9 @@ class Tools {
|
||||
var alt = cartographic.height < 0 ? 0 : cartographic.height
|
||||
// var alt = cartographic.height
|
||||
return {
|
||||
lng: lng,
|
||||
lat: lat,
|
||||
alt: alt,
|
||||
lng: Number(lng.toFixed(8)),
|
||||
lat: Number(lat.toFixed(8)),
|
||||
alt: Number(alt.toFixed(2)),
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,13 +141,14 @@ class Tools {
|
||||
* @param [fractionDigits=2] 保留小数点位数
|
||||
* @param [ground=true] 是否贴地
|
||||
* */
|
||||
async computeDistance(positions = [], fractionDigits = 2, type = '空间长度') {
|
||||
async computeDistance(positions = [], fractionDigits = 2, type = 0) {
|
||||
if (positions.length < 2) {
|
||||
return 0
|
||||
} else {
|
||||
let length = 0
|
||||
switch (type) {
|
||||
case '空间长度':
|
||||
case '0':
|
||||
case 0:
|
||||
for (let i = 0; i < positions.length - 1; i++) {
|
||||
const position1 = Cesium.Cartesian3.fromDegrees(positions[i].lng, positions[i].lat, positions[i].alt);
|
||||
const position2 = Cesium.Cartesian3.fromDegrees(positions[i + 1].lng, positions[i + 1].lat, positions[i + 1].alt);
|
||||
@ -155,7 +156,8 @@ class Tools {
|
||||
length = length + distance
|
||||
}
|
||||
break
|
||||
case '投影长度':
|
||||
case '1':
|
||||
case 1:
|
||||
for (let i = 0; i < positions.length - 1; i++) {
|
||||
const position1 = Cesium.Cartesian3.fromDegrees(positions[i].lng, positions[i].lat, 0);
|
||||
const position2 = Cesium.Cartesian3.fromDegrees(positions[i + 1].lng, positions[i + 1].lat, 0);
|
||||
@ -163,7 +165,8 @@ class Tools {
|
||||
length = length + distance
|
||||
}
|
||||
break
|
||||
case '地表长度':
|
||||
case '2':
|
||||
case 2:
|
||||
let meters
|
||||
let lineString2 = []
|
||||
positions.forEach((item) => {
|
||||
@ -1243,14 +1246,28 @@ class Tools {
|
||||
* */
|
||||
deepCopyObj(obj) {
|
||||
let newobj = null;
|
||||
//判断是否需要继续进行递归
|
||||
if (typeof (obj) == 'object' && obj !== null) {
|
||||
newobj = obj instanceof Array ? [] : {}; //进行下一层递归克隆
|
||||
// 处理数组 - 使用原生Array构造函数创建新数组
|
||||
if (Array.isArray(obj)) {
|
||||
newobj = [];
|
||||
// 只拷贝数组元素,不拷贝可能存在的扩展方法
|
||||
for (let i = 0; i < obj.length; i++) {
|
||||
newobj[i] = this.deepCopyObj(obj[i]);
|
||||
}
|
||||
return newobj;
|
||||
}
|
||||
|
||||
// 处理对象
|
||||
else if (obj && typeof obj === 'object') {
|
||||
newobj = {};
|
||||
for (let i in obj) {
|
||||
if (i != 'earth' && i != 'Dialog')
|
||||
newobj[i] = this.deepCopyObj(obj[i])
|
||||
} //如果不是对象直接赋值
|
||||
} else newobj = obj;
|
||||
// 排除指定属性和方法属性
|
||||
if (i !== 'earth' && i !== 'Dialog' && typeof obj[i] !== 'function') {
|
||||
newobj[i] = this.deepCopyObj(obj[i]);
|
||||
}
|
||||
}
|
||||
return newobj;
|
||||
}
|
||||
else newobj = obj;
|
||||
return newobj;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user