【问题标题】:How to get centroid for a GeoJSON feature coordinates?如何获取 GeoJSON 特征坐标的质心?
【发布时间】:2019-04-15 18:58:15
【问题描述】:
我有一个 GeoJSON 数据的简单对象,其特征如下所示:
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-94.62979125976562,
35.6382942199707
],
...
它不是一个 Leaflet 多边形对象,只是一个具有简单值的对象,所以我不能像 .getBounds().getCenter() 这样运行它的方法。
我如何使用标准 Leaflet 功能知道质心?
【问题讨论】:
标签:
javascript
leaflet
geojson
【解决方案1】:
第一步是根据给定 GeoJSON 中的“坐标”创建多边形。您可以为此使用库 rgdal 并获得多边形,
polygons <- readOGR(data, "OGRGeoJSON", require_geomType="wkbPolygon")
这将创建一个正式类 SpatialPolygonsDataFrame。
要找到这个多边形的质心,请使用库 rgeos。它包含一个名为 gCentroid 的函数。
Centroid <- gCentroid(polygons, byid = TRUE)
这给出了质心坐标的Formal类SpatialPoints。
要最终提取纬度和经度,您可以执行以下操作,
centroid <- list(centroid)
lat <- centroid$x
long <- centroid$y