topojson中merge/mesh和mergeArcs/meshArcs有什么区别?

Ray*_*han 1 javascript maps geojson topojson

维基说:

等效于topojson.merge/ .mesh,但返回TopoJSON MultiPolygon/MultiLineString对象而不是GeoJSON.

但是这是什么意思?返回的TopoJSON MultiPolygon/MultiLineString对象的一个​​很好的用法示例是什么?我试图替换:

topojson.mesh(world, world.objects.countries, function(a, b) { return a !== b; })

......用:

topojson.meshArcs(world, world.objects.countries, function(a, b) { return a !== b; })

...但得到了错误Uncaught TypeError: Cannot read property 'length' of undefinedd3.js.

Eli*_*jah 6

不同之处在于merge和mesh返回GeoJSON功能,这些功能可以传递给d3.geo.path,以便使用SVG路径元素显示在屏幕上.相比之下,mergeArcs和meshArcs返回拓扑,需要将其传递回topojson.feature以传递给d3.geo.path以进行显示.

您之所以使用mergeArcs和meshArcs,是因为您希望对数据执行更多拓扑功能,例如合并它们或查找邻居.