En OpenLayers, amplíe hasta la extensión de todas las superposiciones

10

En Openlayers puedo hacer zoom en el cuadro delimitador de todas las capas de esta manera:

map.zoomToExtent();

También puedo acercarme al cuadro delimitador de una sola capa:

map.zoomToExtent(layer_name.getDataExtent());

¿Hay una manera fácil de hacer zoom en la extensión de todas las capas excepto la capa base? En otras palabras, muestra el alcance de todas las superposiciones.

Mr_Chimp
fuente

Respuestas:

6
  1. for-loop sobre todas sus capas
    1. Omita la capa base [según sus necesidades]
    2. Use limits.extend (...) para construir la API de objetos de límites que lo abarca todo
  2. Zoom a la API de límites resultante
Vadim
fuente
Creo que esto no funcionará, porque extend () solo funciona si se llama en límites más pequeños que el que se pasa como argumento.
pakman
¿Cómo podría lograr lo mismo con OpenLayer API 3.x?
imdadhusen
@imdadhusen ¿por qué no buscarías la documentación? mismo método mismo objeto diferente espacio de nombres openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim
1

¿Qué hay de arreglar un map.restrictedExtent y llamar a map.zoomToExtent (map.restrictedExtent) ?

simo
fuente
Eso solo movería el problema ... ¿Cómo averiguaría el cuadro delimitador de las superposiciones para crear la Extensión restringida?
Mr_Chimp
¿Has probado con ZoomToMaxExtent (), pero probablemente se acercaría a la extensión de la capa base si fuera más grande? si no funciona, debe recuperar la extensión de cada capa de superposición y mantener la más grande para corregir el contenido restringido.
simo
Intenté ZoomToMaxExtend () y se acerca a la capa base. Mencioné esto en mi pregunta, pero al releerlo no es obvio. Mantener el cuadro delimitador más grande no necesariamente funcionaría, es decir, si dos capas no se superponen. Supongo que tendré que combinar los cuadros delimitadores de cada capa de alguna manera y luego obtener el cuadro delimitador del objeto resultante ...
Mr_Chimp
¡Eso es! Lo cual no es tan difícil ... Pero estoy de acuerdo con usted, es sorprendente que tal método todavía no exista (o nos perdimos algo ;-) ..)
simo
Bueno, espero que hayamos perdido algo! Dejaré la pregunta abierta por ahora ... ¡por si acaso!
Mr_Chimp