function getCenterCoordinate(coordinates) {
//中心坐标算法 [[40.712776, -74.005974], [34.052235, -118.243683], [51.507351, -0.127758]]
const lats = coordinates.map((coordinate) => coordinate[0]).sort();
const lngs = coordinates.map((coordinate) => coordinate[1]).sort();
const middleIndex = Math.floor(coordinates.length / 2);
const centerLat = lats[middleIndex];
const centerLng = lngs[middleIndex];
// 找到coordinates中最接近中心点的坐标
const closestCoordinate = coordinates.reduce((closest, coordinate) => {
const [lat, lng] = coordinate;
const closestLat = closest[0];
const closestLng = closest[1];
const distanceToCenter = Math.sqrt(
Math.pow(closestLat - centerLat, 2) +
Math.pow(closestLng - centerLng, 2)
);
const distanceToCoordinate = Math.sqrt(
Math.pow(lat - centerLat, 2) + Math.pow(lng - centerLng, 2)
);
return distanceToCoordinate < distanceToCenter ? coordinate : closest;
}, coordinates[0]);
return closestCoordinate;
}
多个经纬度坐标系中,找到最居中的那个坐标系数组
最新推荐文章于 2024-02-20 10:34:44 发布