Javascript 如何使用topojson合并合并两个多边形要素
我试图使用topojson将两个多边形特征合并在一起。两个多边形最初不包含类似/共享的点,我认为topojson.merge需要这些点才能执行合并。在执行拓扑之前,我将遍历多边形,并将共享点添加到需要它们的多边形中。创建的结果FeatureCollection、collection如下所示:Javascript 如何使用topojson合并合并两个多边形要素,javascript,geojson,topojson,Javascript,Geojson,Topojson,我试图使用topojson将两个多边形特征合并在一起。两个多边形最初不包含类似/共享的点,我认为topojson.merge需要这些点才能执行合并。在执行拓扑之前,我将遍历多边形,并将共享点添加到需要它们的多边形中。创建的结果FeatureCollection、collection如下所示: { "type": "FeatureCollection", "features": [ { "type": "Feature", "properti
{
"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;
}
});
似乎出现错误是因为代码查找的圆弧比它们存在的位置低一步
我做错了什么