uniapp map地图 多边形中心点
需求:用户进入页面,页面展示电子围栏中心点,
技术栈:uniapp+map地图
效果图:
::接口未返回中心点的经纬度,需要前端计算中心点在哪里
代码:
centerList() {
let newArr = this.arrRed.map(item => {
item.latitude = Number(item.latitude);
item.longitude = Number(item.longitude);
return Object.values(item);
});
let total = newArr.length;
let X = 0,
Y = 0,
Z = 0;
newArr.forEach((item, i) => {
let lng = item[1] * Math.PI / 180;
let lat = item[0] * Math.PI / 180;
let x, y, z;
x = Math.cos(lat) * Math.cos(lng);
y = Math.cos(lat) * Math.sin(lng);
z = Math.sin(lat);
X += x;
Y += y;
Z += z;
})
X = X / total;
Y = Y / total;
Z = Z / total;
let Lng = Math.atan2(Y, X);
let Hyp = Math.sqrt(X * X + Y * Y);
let Lat = Math.atan2(Z, Hyp);
this.latitude = Lat * 180 / Math.PI;
this.longitude = Lng * 180 / Math.PI;
},
本文来自博客园,作者:danmo_xx,转载请注明原文链接:https://www.cnblogs.com/xx321/p/17921822.html