D3:合并内部svg路径?

时间:2013-04-18 20:35:35

标签: javascript svg d3.js

我有一个svg元素,由许多不同的path个对象组成,每个对象代表一个美国州。 enter image description here

http://jsfiddle.net/jGjZ2/

我想将东区(黄金)合并为单个路径对象,没有明显的划分。

最终结果应如下所示(忽略不准确之处): enter image description here

我正在使用D3。 没有GeoJSON或TopoJSON数据 - 地图是直接嵌入在html中的svg(参见jsfiddle)。

非常感谢!

1 个答案:

答案 0 :(得分:20)

假设您可以忽略操纵现有SVG图像的规定限制(这似乎是一个任意限制,因为在更易于操作的格式中可以随时获得制图边界......),您可以使用{{3合并多个多边形。但请注意,此方法有一些限制,如本例所述:

topojson.mesh

另一个简单的方法是两次突出显示多边形:一次是粗黑色笔划而没有填充,第二次是橙色填充而没有笔划。这实现了相同的效果,无需拓扑操作:

merged polygons

我想如果你真的不得不这样做,你可以通过提取矢量数据来进入SVG元素并做同样的事情,但如果你从干净的数据开始会更容易。