将D3中的topojson网格渲染为不同的路径

时间:2015-11-25 01:23:43

标签: javascript d3.js svg topojson

我的代码如下:

d3.json("topo-census-regions.json", function(error, topoJ) {
    g.append("path")
        .datum(topojson.mesh(topoJ, topoJ.objects.divis, function(a, b) { return a !== b; }))
        .attr("class", "division-borders")
        .attr("d", path);
});

基本上可行。 (这与Bostock的zoom demo非常相似,只是使用了不同的源文件。)

我的问题是人口普查区域之间的界限呈现为单个SVG路径。 TopoJson的mesh方法将所有共享内部边界折叠为单个复合路径。但是我需要用不同的样式渲染路径的不同部分。

有关视觉参考,请参阅this

“西部”分区内的“太平洋”和“山”之间的边界应该是一个路径元素,“西北中央”和“东北中央”之间的边界应该是另一个,等等。我可以制造这些路径在Illustrator中手动相当容易,但需要能够在大型数据集中以编程方式执行此操作。我希望mesh执行有效的重复数据删除,但将连续段作为单独的元素。

提前感谢您的帮助。

0 个答案:

没有答案