[英]Leaflet Realtime GeoJSON dynamic marker color change
我有一個用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中的屬性實時更改標記的顏色。 有任何想法嗎?
您可以使用updateFeature
的選項L.Realtime
。 它采用具有三個參數的方法: feature
, oldLayer
和newLayer
。 在其中,只需使用newLayer
並使用標記的setIcon
方法:
updateFeature: function (feature, oldLayer, newLayer) {
newLayer.setIcon(new L.AwesomeNumberMarkers({
number: feature.properties.mynumber,
markerColor: feature.properties.status.toLowerCase()
}));
}
無法測試,但應該可以。
參考: https : //github.com/perliedman/leaflet-realtime#-options
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.