【问题标题】:Get area from Latitude/Longitude Point从纬度/经度点获取区域
【发布时间】:2021-04-16 22:13:37
【问题描述】:

我有一张传单地图,用户在其中绘制了一个多边形,这个多边形给了我经纬度点。

我也在用 react js。

我想知道多边形区域,以便我可以从多边形区域内的黑点中获取 id。所以问题是:

如何根据生成的信息去除我的多边形的面积?

多边形绘制函数


        if (type === 'Polygon') {
          console.log(layer);
          var geojson = layer.toGeoJSON();
          console.log(geojson);
        }

【问题讨论】:

  • 如 gis.stackexchange.com/questions/383547/… 中所述,使用 turfjs 执行多边形内点查询。用不同的词问同样的事情是没有帮助的,请考虑修改问题。
  • 这和我在这里问的不一样...我想从多边形中获得区域

标签: reactjs d3.js leaflet coords leaflet-geoman


【解决方案1】:

我假设找到多边形的面积可以解决您的问题。要找到多边形的区域,请尝试使用鞋带算法。详细了解算法的工作原理here

// shoelace algorithm
function polygonArea(coordinates) {
    var sum = 0.0;
    var length = coordinates.length;
    if (length < 3) {
        return sum;
    }
    coordinates.forEach(function (d1, i1) {
        var i2 = (i1 + 1) % length;
        var d2 = coordinates[i2];
        sum += (d2[1] * d1[0]) - (d1[1] * d2[0]);
    });
    return sum / 2;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    相关资源
    最近更新 更多