我正在使用Mapbox loadURL函数加载markerLayer。这工作正常,我能够访问标记属性,但似乎不起作用的是改变标记的颜色。
var markerLayer = L.mapbox.markerLayer();
markerLayer.loadURL('geojson.php?lat='+lat+'&lng='+lng)
.addTo(map);
markerLayer.on('click',function(e) {
e.layer.unbindPopup();
var feature = e.layer.feature;
var info = '<h2>' + feature.properties.name + '</h2>' +
'<p>' + feature.properties.description + '</p>';
document.getElementById('info').innerHTML = info;
feature.properties['old-color'] = feature.properties['marker-color'];
feature.properties['marker-color'] = '#000';
});
为什么这不起作用?如何使用从URL加载的geoJson数据更改标记的颜色? posted example取决于未使用loadUrl加载的geoJson数据。我怀疑这与标记颜色不变的原因有关。
答案 0 :(得分:8)
更改功能的属性无法自动更改图标 - 您需要拨打setIcon
,例如:
e.layer.setIcon(L.mapbox.marker.icon(feature.properties));