javascript - 如何获取 GeoJSON 要素坐标的质心?

标签 javascript leaflet geojson

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

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

它不是一个Leaflet多边形对象,只是一个具有简单值的对象,所以我无法运行它的方法,如.getBounds().getCenter()

如何使用标准 Leaflet 功能知道质心?

最佳答案

第一步是根据给定 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

关于javascript - 如何获取 GeoJSON 要素坐标的质心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44491999/

相关文章:

javascript - 通过 R 向传单多边形添加 'click' 事件

javascript - 当传单中未填写文本属性时,如何隐藏弹出窗口中的文本属性?

javascript - 如何在 Javascript 中定义关键字?

javascript - Fancybox 字幕位置

javascript - 模板函数不插入组件绑定(bind)

java - 使用 MapBox 从本地存储的 GeoJSON 文件添加和显示数据

javascript - 为每组坐标绘制不同样式的 openLayers 图层

javascript - 重复功能直到完成?

reactjs - 在 Leaflet 中拖动后获取更新的坐标

javascript - 为所有缩放级别绘制一个恒定大小的圆 leaflet.js