Tengo una capa de puntos de Leaflet que utiliza iconos. Tengo una carpeta diferente para los pasos de tiempo individuales, y me gustaría utilizar un deslizador jquery ui para cambiar entre ellos. Cambiar el deslizador debe cambiar la ruta utilizada para definir los marcadores en la capa.
Este es mi intento hasta ahora:
var map = L.map('map', {
crs: crs
});
$( "#slider-bar" ).slider({
value: 1999,
min: 1999,
max: 2014,
step: 1,
change: function(event, ui) {
//console.log(ui);
}
});
var markerPointLayer = L.geoJSON(britishColumbiaPoints, {
pointToLayer: function (feature, latlng) {
return L.marker(latlng, {
icon: L.icon({
iconUrl: 'svg/1999/' + feature.properties.name + '.svg'
})
})
},
onEachFeature: function (feature, layer) {
$( "#slider-bar" ).on("change", function(feature) {
layer.setIcon(L.icon({
iconUrl: 'svg/' + $( "#slider-bar" ).slider("option", "value") + '/' + feature.properties.name + '.svg'
}))
})
}
}).addTo(map);
Pero parece que la función onEachFeature no detecta que la barra deslizante ha cambiado.
También he probado a hacerlo en el propio deslizador:
$( "#slider-bar" ).slider({
value: 1999,
min: 1999,
max: 2014,
step: 1,
change: function(event, ui) {
markerPointLayer.setIcon(
L.icon({
iconUrl: 'svg/' + ui.value + '/' + markerPointLayer.feature.properties.name + '.svg'
})
)
}
});
Pero parece que no reconoce el objeto de capa.