O Leaflet tem opção para camadas dependentes de escala?


8

É possível mostrar camadas com o Leaflet dependendo da escala? Por exemplo, não mostre municípios até que o nível de zoom atinja 10.

Respostas:


20

sim, você pode definir a escala no construtor:

por exemplo:

var layer = L.tileLayer("http://{s}.tile.page.com/map/{z}/{x}/{y}.jpg", {
        minZoom: 1,
        maxZoom: 14
    } ) ;

vetores não possuem propriedades max / min, você pode usar um evento zoomend para acionar a adição ou remoção deles, algo como:

    map.on('zoomend ', function(e) {
         if ( map.getZoom() > 13 ){ map.removeLayer( vector )}
         else if ( map.getZoom() <= 13 ){ map.addLayer( vector )}
    });

Obrigado. Isso é possível com L.polygon, não com L.tileLayer? É, eu apenas tentei. Muito obrigado!
againstflow

Eu adicionei uma parte sobre vectorlayers
warrieka

1
Obrigado pela resposta, funciona o que é incrível! Só queria acrescentar que o método é um pouco diferente do Warrieka mencionado. Precisa ser - map.getZoom () não map.zoommap.on('zoomend ', function(e) { if ( map.getZoom() > 12 ){ map.removeLayer( vector )} else if ( map.getZoom() <= 12 ){ map.addLayer( vector )} });
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.