Javascript 如何使用topojson合并合并两个多边形要素

Javascript 如何使用topojson合并合并两个多边形要素,javascript,geojson,topojson,Javascript,Geojson,Topojson,我试图使用topojson将两个多边形特征合并在一起。两个多边形最初不包含类似/共享的点,我认为topojson.merge需要这些点才能执行合并。在执行拓扑之前,我将遍历多边形,并将共享点添加到需要它们的多边形中。创建的结果FeatureCollection、collection如下所示: { "type": "FeatureCollection", "features": [ { "type": "Feature", "properti

我试图使用topojson将两个多边形特征合并在一起。两个多边形最初不包含类似/共享的点,我认为topojson.merge需要这些点才能执行合并。在执行拓扑之前,我将遍历多边形,并将共享点添加到需要它们的多边形中。创建的结果FeatureCollection、collection如下所示:

{
    "type": "FeatureCollection",
    "features": [
    {
        "type": "Feature",
        "properties":
        {
            "id": "area_1"
        },
        "geometry":
        {
            "type": "Polygon",
            "coordinates": [
                [
                    [148, 105],
                    [160, 105],
                    [160, 113],
                    [148, 113]
                ]
            ]
        }
    },
    {
        "type": "Feature",
        "properties":
        {
            "id": "area_2"
        },
        "geometry":
        {
            "type": "Polygon",
            "coordinates": [
                [
                    [143, 113],
                    [148, 113],
                    [160, 113],
                    [171, 113],
                    [171, 132],
                    [143, 132]
                ]
            ]
        }
    }]
} 
让topology=topojson.topology{collection:collection}

生成的拓扑是:

{
    "type": "Topology",
    "objects":
    {
        "collection":
        {
            "type": "GeometryCollection",
            "geometries": [
            {
                "type": "Polygon",
                "arcs": [
                    [-1]
                ],
                "properties":
                {
                    "id": "area_1"
                }
            },
            {
                "type": "Polygon",
                "arcs": [
                    [-2]
                ],
                "properties":
                {
                    "id": "area_2"
                }
            }]
        }
    },
    "arcs": [
        [
            [
                [148, 105],
                [160, 105],
                [160, 113],
                [148, 113]
            ]
        ],
        [
            [
                [143, 113],
                [148, 113],
                [160, 113],
                [171, 113],
                [171, 132],
                [143, 132]
            ]
        ]
    ]
}
以下是我如何调用合并: topojson.mergetopology、topology.objects.collection.Geometrics

由此产生的误差是: 未捕获的TypeError:无法读取未定义的-stitch.js:13的属性“0”

发生错误的代码行:

arcs.forEach(function (i, j) {
    var arc = topology.arcs[i < 0 ? ~i : i],
        t;

    if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {
      t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;
    }
  });
似乎出现错误是因为代码查找的圆弧比它们存在的位置低一步

我做错了什么