【发布时间】:2017-04-04 08:17:18
【问题描述】:
我正在尝试为传单 geoJson 图层上的每个点设置不同的 divIcon。我已经在阳光下尝试了一切,但它对我不起作用。这就是我正在做的事情
geoJsonLayer = L.geoJson(null, {
pointToLayer: function(feature, latlng) {
var smallIcon = L.DivIcon.extend({
options: {
iconSize: [27, 27],
html: "<div>" + feature.properties.FEATURE_STYLE.SVG_ELEMENT + "</div>"
}
});
return L.marker(latlng, {icon: new smallIcon()});
},
style: getLayerStyle,
onEachFeature: setFeatureProperties,
});
geoJsonLayer.addTo(baseMap);
feature.properties.FEATURE_STYLE.SVG_ELEMENT 是一个包含图标的 html <svg>。
图标显示正常,但是每个功能都显示相同的图标。
我也尝试过以下操作:
- 在每个功能的 iconUrl 中使用具有不同 .png 的 L.Icon
- 为每个特征使用不同颜色的 L.circleMarker
它们都按预期工作(每个功能的颜色/图标不同)。但我似乎无法让 divIcon 为每个功能以不同方式显示。
有人知道为什么会这样吗?
提前致谢。
更新:
This is what feature.properties.FEATURE_STYLE.SVG_ELEMENT looks like
【问题讨论】:
-
请在您的问题正文中包含一个仍然重现问题的小代码(如您的 SVG)。见MCVE。
-
我正在使用的 svg 在上面的 pastebin 链接中:“这就是 feature.properties.FEATURE_STYLE.SVG_ELEMENT 的样子”。包含在代码标签中对我来说太长了。谢谢。
-
考虑重构您的 SVG 以获得仍然重现您的问题的最小值。我相信您这样做可能会发现一些事情。