小编jwe*_*est的帖子

计算JavaScript中两个多边形的重叠百分比

问题出在这里:我有geoJSON和topoJSON文件,这些文件为我提供了人口普查区块组和投票区域的多边形。我正在尝试查看给定的人口普查区块组与给定的区域有多少重叠。

我已经看到了一些其他语言示例,例如R和某些GIS工具,但是我正在尝试将其编写为Node.js脚本。几个问题:

  1. 是否有可以吐出重叠百分比的NPM模块(我已经做了大量的Google搜索,但我还没有找到)。
  2. 是否有我应该了解的算法或用另一种语言编写的示例(我看过了,但是我从最模糊的地方开始)并且可以移植到JavaScript?
  3. 这些失败,能有人向我解释我怎么去想着创造这个算法?

最后,最终产品看起来像这样—想象我有一系列的区域和块组,每个对象都是一个具有geometry属性的对象,其中包含该区域或块组的多边形数据,并且还想象着我有一个称为的函数overlap,当传递两个多边形时会吐出百分比重叠:

// Iterate over each precinct.
_.each( precincts, function ( precinct ) {

    // Iterate over each blockgroup.
    _.each( blockgroups, function ( blockgroup ) {

        // Get the overlap for the current precinct and blockgroup.
        var o = overlap( precinct.geometry, blockgroup.geometry );

        // If they overlap at all...
        if ( o > 0 ) {

            // ...Add information about the overlap to the precinct.
            precinct.overlaps.push({
                blockgroup: blockgroup.id,
                overlap: o …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm geojson node.js topojson

3
推荐指数
2
解决办法
2478
查看次数

标签 统计

algorithm ×1

geojson ×1

javascript ×1

node.js ×1

topojson ×1