我是Leaflet JS的新手。我正在尝试找到一种方法来更改Leaflet实时插件中使用的L.Geojson标记的默认样式。我不知道要更改哪个属性以便更改标记的样式。
到目前为止,这是我的代码:
var map = L.map('map', {center: [46.4337, 23.4532], zoom: 8}),
realtime = L.realtime({
url: 'get_points.php',
crossOrigin: true,
type: 'json'
}, {
interval: 500
}).addTo(map);
var osm = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
map.addLayer(osm);
function update(e) {
realtime.update(JSON.parse(e.data));
}
function remove(e) {
realtime.remove(JSON.parse(e.data));
}
realtime.on('update', function(e) {
popupContent = function(fId) {
var feature = e.features[fId],
my_number = feature.properties.number;
mystatus = feature.properties.mystatus;
return ('My number is: '+ my_number + '<br />' + 'Status: ' + mystatus) ;
},
bindFeaturePopup = function(fId) {
realtime.getLayer(fId).bindPopup(popupContent(fId));
},
updateFeaturePopup = function(fId) {
realtime.getLayer(fId).getPopup().setContent(popupContent(fId));
};
Object.keys(e.enter).forEach(bindFeaturePopup);
Object.keys(e.update).forEach(updateFeaturePopup);
});
我尝试使用自定义图标标记设置pointToLayer函数,但没有成功。
谢谢。
`pointToLayer: function (feature, latlng) {
return L.marker(latlng, { 'icon': new L.AwesomeNumberMarkers({ number: feature.properties.number, markerColor: feature.properties.mystatus.toLowerCase() })});` - Flaviu