如何获得GeoJSON要素坐标的质心?

时间:2017-06-12 05:32:46

标签: javascript leaflet geojson

我有一个简单的GeoJSON数据对象,其功能如下所示:

  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [
          -94.62979125976562,
          35.6382942199707
        ],
 ...

它不是Leaflet多边形对象,只是一个具有简单值的对象,因此我无法运行.getBounds().getCenter()之类的方法。

如何使用标准Leaflet功能了解质心?

1 个答案:

答案 0 :(得分:0)

第一步是根据给定的GeoJSON中的“坐标”创建多边形。您可以为此使用 rgdal 库,并以

的形式获取多边形
 polygons <- readOGR(data, "OGRGeoJSON", require_geomType="wkbPolygon")

这将创建一个正式类SpatialPolygonsDataFrame。

要查找此多边形的质心,请使用库 rgeos 。它包含一个称为gCentroid的函数。

Centroid <- gCentroid(polygons, byid = TRUE)

这给出了质心坐标的形式类SpatialPoints。

要最终提取纬度和经度,您可以执行以下操作,

centroid <- list(centroid)
lat <- centroid$x  
long <- centroid$y