我尝试修改 Leaflet 的 Path.SVG.js 以便它生成以下 SVG 标记。
<svg class=" leaflet-zoom-animated" width="2698" height="318" viewBox="-995 12 2698 318" style="-webkit-transform: translate3d(-995px, 12px, 0);">
<defs>
<pattern id="rank1" x="0" y="0" height="28pt" width="28pt" patternUnits="userSpaceOnUse">
<image xlink:href="https://googledrive.com/host/0B9FPQIuJQjY3eTlWMFZBWUxiY1E/pattern5.png" height="28pt" width="28pt">
</image>
</pattern>
</defs>
<g>
<path stroke-linejoin="round" stroke-linecap="round" fill-rule="evenodd" stroke="#f03" stroke-opacity="0.7" stroke-width="5" fill="url(#rank1)" class="leaflet-clickable" d="M558,85A42,42,0,1,1,557.9,85 z">
</path>
</g>
<g>
<path stroke-linejoin="round" stroke-linecap="round" fill-rule="evenodd" stroke="#0033ff" stroke-opacity="0.5" stroke-width="5" fill="url(#rank1)" class="leaflet-clickable" d="M733 118L849 174L925 108z">
</path>
</g>
这里的目标是渲染一个填充有图像图案的多边形。然后,我使用 Chrome 的元素检查器复制并粘贴了生成的 SVG 标记并将其粘贴到页面的正文元素中。我重新加载页面并得到以下结果:
链接到屏幕截图(抱歉,我目前的声望 < 10)
请注意,地图中的多边形没有任何图形填充,但我 100% 确定它们是相同的标记,因为我只是从 Leaflet 生成的标记中复制粘贴底部的多边形。
任何想法为什么填充图形不会在地图内的多边形中呈现?