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.

Mr_Chimp
la source

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
Vadim
la source
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) ?

simo
la source
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