我有一张输出美国地图的SVG图片。每个美国州的布局如图here所示。边框是通过SVG路径绘制的。每个状态由其自己的SVG路径表示。
我想要做的是将几个邻国分成一个区域,比如我希望加利福尼亚州,亚利桑那州和内华达州作为一个区域出现。为此,我需要将这3个状态中的每个状态的路径合并为一个包含所有这三个状态的路径。
是否有人知道自动执行此操作的程序?或者是一种方法?
答案 0 :(得分:3)
如果您有Adobe Illustrator,您可以将SVG文件作为矢量图稿加载,使用Unite Shape Mode或Merge Pathfinder(都在Pathfinder调色板中)将多个路径转换为单个路径,然后再次导出为SVG
请注意,在linked-to example中,每个州的路径不会重叠。因此,在这些路径上执行的任何路径联合都不会改变视觉外观;各州之间仍然存在差距。
如果要消除Illustrator中状态之间的间隙,则需要首先在状态上使用笔划以覆盖间隙,然后选择菜单命令Oʙᴊᴇᴄᴛ▸Pᴀᴛʜ▸OᴜᴛʟɪɴᴇSᴛʀᴏᴋᴇ,以及然后将这些与形状结合起来。
如果间隙很好,并且您只想将两个(或更多)状态视为单个对象,则不需要Illustrator。相反,将多个状态放入一个组(<g>
)并对该组而不是每个状态执行事件处理。
此示例显示组中的两个圆圈,其中事件和样式应用于组级别而不是形状级别:
http://phrogz.net/SVG/css-driven-styles.xhtml
修改:如果您没有Adobe Illustrator,则可以使用免费提供的Inkscape程序,该程序具有自己的Path Operations。