【发布时间】:2022-12-22 06:21:00
【问题描述】:
如何获取单个多边形/多边形特征的中心坐标(纬度/经度)。
如何获取单个多边形/多边形特征的中心坐标(纬度/经度)。
GeoJSON 上的要素对象可以具有单个或多个多边形。 为了计算给定多边形的中心坐标(纬度/经度)。 您必须从要素对象传递坐标数组。
给定的方法将返回传递的特征(多边形)的中心纬度/经度。
getCenter(points) {
let sumX = 0, sumY = 0;
let cords = points;
for (var i = 0; i < cords.length; i++) {
let point = cords.at(i);
let x: number = point.at(0);
let y: number = point.at(1);
sumX += x;
sumY += y;
}
return { longitude: sumX / points.length, latitude: sumY / points.length };}
在某些情况下,您会在 GeoJSON 中获得包含多个多边形的要素对象。 在这种情况下,我们必须将来自多个多边形的所有坐标合并到一个数组中,然后将这个组合的坐标数组传递给函数
getCenter(点)
要组合来自多个多边形的所有坐标,您可以使用此方法。
sumMultiplePolygonCoordinates(coords) { let allCoords = new Array(); for (var i = 0; i < coords.length; i++) { let temp = coords[i]; for (var k = 0; k < temp.length; k++) { allCoords.push(temp[k]) } } return allCoords;}
【讨论】: