Работа с API-интерфейсом Mapbox и интересно, почему свойства маркера, кэшированные в переменных, не обновляются, но их не кэшированные копии делают.Обновление свойства маркера: почему это не работает?
Например, это обновление маркера пользовательского state
свойство, как ожидалось (определено в объекте GeoJSON в другом месте):
map.markerLayer.on('click',function(e) {
var marker = e.layer;
var properties = marker.feature.properties;
var id = properties.id;
var state = properties.state;
if (state === 'active') {
panels.hidePanel(id, function(){
e.layer.feature.properties['state'] = 'inactive';
});
} else {
panels.showPanel(id, function(){
e.layer.feature.properties['state'] = 'active';
});
}
});
Но это не делает:
map.markerLayer.on('click',function(e) {
var marker = e.layer;
var properties = marker.feature.properties;
var id = properties.id;
var state = properties['panel-state'];
if (state === 'active') {
panels.hidePanel(id, function(){
state = 'inactive';
});
} else {
panels.showPanel(id, function(){
state = 'active';
});
}
});
Может кто-нибудь помочь мне понять, что происходит с последним? Почему я не могу кэшировать ссылки в переменных, а не обновлять e.layer.feature.properties['state']
каждый раз?
Извините, что не могу помочь, но спасибо, что представил меня в mapbox - выглядит как классный материал – sgroves
Это действительно потрясающе, в полном смысле. Рад, что вы включили его! – Jon