我有一个使用Leaflet构建的地图,它使用Leaflet-Realtime插件和Leaflet-awesome-numbered-marker插件显示来自GeoJSON的标记。但是我注意到标记颜色没有动态变化,但是如果我重新加载页面它会改变。这是迄今为止的代码:
var map = L.map('map', {center: [46.7634, 23.5996], zoom: 14}),
realtime = L.realtime({
url: 'get_markers.php',
crossOrigin: true,
type: 'json'
}, {
interval: 500,
pointToLayer: function (feature, latlng) {
return L.marker(latlng, {
'icon': new L.AwesomeNumberMarkers({
number: feature.properties.mynumber,
markerColor: feature.properties.status.toLowerCase()
})
});
}
}).addTo(map);
在feature.properties.status
中是我的标记的颜色代码。我想根据json中的属性实时更改标记的颜色。有什么想法吗?
答案 0 :(得分:2)
您可以使用updateFeature
的{{1}}选项。它需要一个包含三个参数的方法:L.Realtime
,feature
和oldLayer
。在那里,只需使用newLayer
并使用标记的newLayer
方法:
setIcon
无法测试,但这应该有效。