3 votos

Detección del evento "load" o "done" después de establecer un nuevo CartoCSS usando set() en cartodb.js

Estoy cargando un tilelayer de datos de mapa en un mapa Leaflet usando cartodb.

Tras la entrada del usuario, el mapa reconfigura su CartoCSS para mostrar los datos de forma diferente. Ejemplo de ello.

layer.on({
    click: function(e){
        dataLayer.getSubLayer(0).set({
            cartocss: "#export { polygon-opacity: 0; }"         
        }).on("load", function(){ console.log("load"); });
     }
});

Me gustaría ser capaz de detectar cuando la capa reconfigurada se ha cargado - a veces hay un retraso considerable - con un evento "hecho" o "cargado". Pero ninguno de los dos funciona como se ha redactado anteriormente, y la documentación no da ninguna pista sobre ninguna promesa/evento especial para .set() .

3voto

Franklin Puntos 16

Los eventos de carga parecen estar soportados (pero no están documentados) en el dataLayer, pero como las promesas no están soportadas tendrías que configurar el listener antes de llamar al set Por ejemplo

dataLayer.on("load", function() { console.log('layer changed'); }); dataLayer.getSubLayer(0).set({ cartocss: "#export { polygon-opacity: 0; }" });

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X