Mais

Detectando o evento “load” ou “done” após configurar o novo CartoCSS usando set () em cartodb.js

Detectando o evento “load” ou “done” após configurar o novo CartoCSS usando set () em cartodb.js


Estou carregando um tilelayer de dados de mapa em um mapa de folheto usando cartodb.

Após a entrada do usuário, o mapa reconfigura seu CartoCSS para exibir os dados de maneira diferente. Exemplo abaixo.

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

Gostaria de ser capaz de detectar quando a camada reconfigurada foi carregada - às vezes há um atraso considerável - com um evento "concluído" ou "carregamento". Mas nenhum dos dois funciona conforme esboçado acima, e a documentação não dá nenhuma indicação quanto a qualquer promessa / evento especial para.definir().


Os eventos de carga parecem ser suportados (mas não são documentados) no dataLayer, mas uma vez que as promessas não são suportadas, você teria que configurar o ouvinte antes de chamar odefinir, por exemplo:

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