【发布时间】:2017-06-15 09:58:11
【问题描述】:
我使用 Leaflet 来显示一个矢量切片图层,如下所示:
var tiles = L.tileLayer('mytiles/{z}/{x}/{y}.svg', {
renderer: L.svg(),
continuousWorld: true,
noWrap: true,
minZoom: 0,
maxZoom: 10,
})
我的图块的元素有 CSS 类,例如 <rect class="country-ES" ...></rect>,所以我想在我的 CSS 中设置它们的样式:
.country-ES {
fill: red !important;
}
但是,这些图块似乎不受这些 CSS 指令的影响。而且我不知道如何调试它,因为 Chrome 或 Firefox 的 Web 开发工具无法检查磁贴。
知道如何实现吗?
【问题讨论】:
-
将 CSS 放入 SVG 文件或将 SVG 文件链接到 CSS 文件。
-
我希望能够通过向我的地图添加 CSS 类来动态更改样式。例如,我可以使用
.highlight-country .country-ES { fill: red !important; },这样只有当我的地图具有highlight-country类时才会应用该样式。 -
内联 SVG 会更容易,否则你必须在运行时将 CSS 注入 SVG。
-
是的,确切地说,我希望 Leaflet 将我的图块显示为内联 SVG……但我还没有弄清楚如何做到这一点。我正在尝试重载 createTiles 方法,以便它下载磁贴并将其放入
<svg>元素中,如果可行,我将发布答案……
标签: css svg leaflet vector-tiles