dragBox var dragBox = new ol.interac…" /> dragBox var dragBox = new ol.interac…" />
Suite

L'interaction de la boîte de glisser OpenLayers 3 ne pointe pas correctement


J'utilise OpenLayers 3.9.0. Je souhaite ajouter et supprimer les interactions dragZoom et dragBox dans la carte OpenLayers 3 de manière dynamique.

 var dragBox = new ol.interaction.DragBox({ condition: ol.events.condition.always, style: new ol.style.Style({ stroke: new ol.style.Stroke({ color: [0, 0, 255, 1] }) }) });

Dans jQuery pour l'événement de clic sur le bouton :

$('#box').click(function(){ map.addInteraction(dragBox); })

Lorsque cet événement est déclenché à l'aide du bouton, le curseur et la boîte ne sont pas à la même position.

Alors pourquoi cela se produit-il et comment pouvons-nous surmonter cela?


j'ai trouvé la solution

Cela est dû au changement de la taille du conteneur de carte en externe. Il est corrigé en ajoutant la fonction pour mettre à jour la taille de la carte chaque fois que la taille du conteneur de carte (div) a changé en externe

map.updateSize();

Cette fonction met à jour la taille du conteneur de carte de manière dynamique. Donc le pointeur pointe exactement


Voir la vidéo: QGIS Tutorial: How to add Google Maps layers in QGIS 3 EN (Octobre 2021).