簡體   English   中英

Leaflet Realtime GeoJSON動態標記顏色更改

[英]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 它采用具有三個參數的方法: featureoldLayernewLayer 在其中,只需使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM