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

A interação da caixa de arrasto do OpenLayers 3 não está apontando corretamente

A interação da caixa de arrasto do OpenLayers 3 não está apontando corretamente


Estou usando o OpenLayers 3.9.0. Desejo adicionar e remover interações dragZoom e dragBox no mapa OpenLayers 3 dinamicamente.

 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]})})});

No jQuery para evento de clique de botão:

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

Quando este evento é acionado com o botão, o cursor e a caixa não estão na mesma posição.

Então, por que isso acontece e como podemos superar isso?


Eu encontrei a solução

É devido à mudança do tamanho do container do mapa externamente. É corrigido adicionando a função para atualizar o tamanho do mapa sempre que o tamanho do contêiner do mapa (div) mudou externamente

map.updateSize ();

Esta função atualiza o tamanho do contêiner do mapa dinamicamente. Então o ponteiro aponta exatamente


Assista o vídeo: Openlayers 6 Tutorial #6 - Layer Switcher