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.

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

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) ?


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
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.