Dans OpenLayers, zoomez sur l'étendue de toutes les superpositions


10

Dans Openlayers, je peux zoomer sur le cadre de sélection de tous les calques comme ceci:

map.zoomToExtent();

Je peux également zoomer sur le cadre de sélection d'un seul calque:

map.zoomToExtent(layer_name.getDataExtent());

Existe-t-il un moyen simple de zoomer dans la mesure de tous les calques, à l'exception du calque de base? En d'autres termes, montrant l'étendue de toutes les superpositions.

Réponses:


6
  1. boucle sur toutes vos couches
    1. Ignorez la couche de base [selon vos besoins]
    2. Utilisez bounds.extend (...) pour créer l' API d' objet de limites englobante
  2. Zoom sur l' API des limites résultante

Je pense que cela ne fonctionnera pas, car extend () ne fonctionne que s'il est appelé sur des limites plus petites que celle qu'il est passé en argument.
pakman

Comment pourrais-je obtenir la même chose en utilisant OpenLayer API 3.x
imdadhusen

@imdadhusen pourquoi ne cherchez-vous pas simplement la documentation? même méthode. même objet. espace de noms différent. openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim

1

qu'en est-il de la fixation d'un map.restrictedExtent et de l'appel map.zoomToExtent (map.restrictedExtent) ?


Cela ne ferait que déplacer le problème ... Comment pourrais-je trouver la boîte englobante des superpositions afin de créer le restreintExtent?
Mr_Chimp

avez-vous essayé avec ZoomToMaxExtent () - mais il zoomerait probablement sur l'étendue de la couche de base s'il était plus grand? si cela ne fonctionne pas, vous devez récupérer l'étendue pour chaque couche d'ovelays et conserver la plus grande pour corriger restrictedExtent.
simo

J'ai essayé ZoomToMaxExtend () et il effectue un zoom sur la couche de base. Je l'ai mentionné dans ma question, mais en relisant ce n'est pas évident. Garder la plus grande boîte englobante ne fonctionnerait pas nécessairement - c'est-à-dire si deux couches ne se chevauchent pas. Je suppose que je vais devoir combiner les boîtes englobantes de chaque couche et obtenir ensuite la boîte englobante de l'objet résultant ...
Mr_Chimp

C'est ça! Ce qui n'est pas si difficile ... Mais je suis d'accord avec toi, c'est surprenant qu'une telle méthode n'existe pas encore (ou on a raté quelque chose ;-) ..)
simo

Et bien j'espère que nous avons raté quelque chose! Je laisse la question ouverte pour l'instant ... juste au cas où!
Mr_Chimp
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.