GeoJSON 功能:在 GeoJSON 中计算多边形/多边形的中心

分享于2022年12月29日 angular angular-google-maps google-maps javascript polygon 问答
【问题标题】:GeoJSON feature : Calculate Center Of Polygon/Multipolygon in GeoJSONGeoJSON 功能:在 GeoJSON 中计算多边形/多边形的中心
【发布时间】:2022-12-22 06:21:00
【问题描述】:

如何获取单个多边形/多边形特征的中心坐标(纬度/经度)。


【解决方案1】:

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;}

【讨论】: