2012-07-27 149 views
3

我试图在SVG中制作一些基于六边形的地图。不幸的是,字段之间有空白。SVG中六边形之间的空间

我禁用了字段边界(stroke =“none stroke-width =”0“),将所有浮点四舍五入为整数,并确保六边形具有公共点(它们之间没有空格)。求助

两个截图显示了在不同的放大倍数相同SVG http://imgur.com/GLiJs,gi3pt

源代码是在这里:http://pastebin.com/hqwTKW4M(记得更改扩展SVG,下载后)

+0

您使用的是什么浏览器? – kevin628 2012-07-27 21:37:18

+0

我使用Firefox(14.0.1),Opera(12.00)和Chromium(22.0.1197),但没关系。我知道这是SVG渲染引擎的问题。在SVG规范中,我找到了关于形状渲染属性[link](http://www.w3.org/TR/SVG/painting.html#ShapeRenderingProperty)的信息。在将我的六边形设置为“crispEdges”或“optimizeSpeed”之后,白色间隙消失。 – skorczan 2012-07-28 07:15:57

回答

4

形状渲染属性设置为“crispEdges”。对于所有六边形(或其中的一组)解决此问题,例如

<polygon 
    points="0,90 45,12 135,12 180,90 135,168 45,168" 
    fill="green" stroke="none" stroke-width="0" 
    shape-rendering="crispEdges" /> 

http://www.w3.org/TR/SVG/painting.html#ShapeRenderingProperty

+0

设置crispEdges会使外边缘呈锯齿状,以获得更好的效果,设置一个可覆盖间隙的笔划,例如, 'stroke =“green”stroke-width =“1.5”' – Duopixel 2012-07-28 15:35:08

+0

我将使用相当复杂的填充(模式),所以我不能使用这个技巧。我必须弥补差距,即使我会松散边缘的平滑度。 – skorczan 2012-07-30 14:09:39

+0

这对我很有用,但我最终希望将我的svg转换为pdf,再次显示差距。任何类似的PDF解决方案? – 2013-08-12 09:53:38