No OpenLayers, amplie a extensão de todas as superposições

10

No Openlayers, posso ampliar a caixa delimitadora de todas as camadas como esta:

map.zoomToExtent();

Também posso ampliar a caixa delimitadora de uma única camada:

map.zoomToExtent(layer_name.getDataExtent());

Existe uma maneira fácil de aplicar zoom na extensão de todas as camadas, exceto a camada base? Em outras palavras, mostrando a extensão de todas as sobreposições.

Mr_Chimp
fonte

Respostas:

6
  1. loop for sobre todas as suas camadas
    1. Pule a camada base [por sua exigência]
    2. Use bounds.extend (...) para criar a API do objeto de limites abrangentes
  2. Aplicar zoom à API de limites resultante
Vadim
fonte
Eu acho que isso não vai funcionar, porque extends () só funciona se for chamado em limites menores do que aquele que é passado como argumento.
Pakman
Como eu poderia conseguir mesmo usando OpenLayer API 3.x
imdadhusen
@imdadhusen Por que você não procurou a documentação? mesmo método. mesmo objeto. namespace diferente. openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim
1

que tal consertar um map.restrictedExtent e chamar map.zoomToExtent (map.restrictedExtent) ?

simo
fonte
Isso apenas mudaria o problema ... Como descobrir a caixa delimitadora das sobreposições para criar o strictExtent?
Mr_Chimp 18/02
você tentou com ZoomToMaxExtent () - mas provavelmente aumentaria o zoom para a extensão da camada base, se for maior? se não funcionar, é necessário recuperar a extensão para cada camada de camada contínua e manter a maior para corrigir o strictExtent.
simo
Eu tentei ZoomToMaxExtend () e amplia a camada base. Mencionei isso na minha pergunta, mas ao reler não é óbvio. Manter a maior caixa delimitadora não funcionaria necessariamente - ou seja, se duas camadas não se sobrepuserem. Eu acho que eu vou ter que combinar as caixas delimitadoras de cada camada de alguma forma e, em seguida, pegar a caixa delimitadora do objeto resultante ...
Mr_Chimp
É isso aí! O que não é tão difícil ... Mas eu concordo com você, é tal método uma surpreendente ainda não existe (ou perdemos algo ;-) ..)
simo
Bem, espero que tenhamos perdido alguma coisa! Deixarei a pergunta em aberto por enquanto ... por precaução!
Mr_Chimp 18/02