Leaflet实时GeoJSON动态标记颜色变化

时间:2015-03-07 12:34:53

标签: javascript real-time leaflet geojson

我有一个使用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中的属性实时更改标记的颜色。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用updateFeature的{​​{1}}选项。它需要一个包含三个参数的方法:L.RealtimefeatureoldLayer。在那里,只需使用newLayer并使用标记的newLayer方法:

setIcon

无法测试,但这应该有效。

参考:https://github.com/perliedman/leaflet-realtime#-options