Jak wyłączyć interakcję DragPan w Openlayers 3 (gdy mapa jest już zdefiniowana)?Jak wyłączyć DragPan w OpenLayers 3?
Dlaczego nie mogę użyć zdarzenia mousemove? To jest: map.on('mousemove',function(e){ ...});
i nie działa.
Jak wyłączyć interakcję DragPan w Openlayers 3 (gdy mapa jest już zdefiniowana)?Jak wyłączyć DragPan w OpenLayers 3?
Dlaczego nie mogę użyć zdarzenia mousemove? To jest: map.on('mousemove',function(e){ ...});
i nie działa.
Aby wyłączyć interakcję, musisz usunąć ją z mapy. Jeśli nie mają odniesienia do interakcji, można go znaleźć przy użyciu metody getInteractions
mapie:
var dragPan;
map.getInteractions().forEach(function(interaction) {
if (interaction instanceof ol.interaction.DragPan) {
dragPan = interaction;
}
}, this);
if (dragPan) {
map.removeInteraction(dragPan);
}
Na razie Przesuń mysz, prawidłowa wydarzenie w użyciu jest „pointermove”, zobaczyć przykład użytkowania: http://openlayers.org/en/v3.3.0/examples/icon.html
Wiesz, że możesz skonfigurować interakcje, które chcesz utworzyć i które są domyślnie dodawane do mapy. Jeśli na przykład chcesz utworzyć mapę bez interakcji dragPan, można to zrobić tak:
var map = new ol.Map({
layers: layers,
interactions: ol.interaction.defaults({
dragPan: false
}),
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
Zobacz here do listy wszystkich możliwych opcji ol.interaction.defaults
.
Istnieje obecnie setActive metoda openlayers 3:
map.getInteractions().forEach(function(interaction) {
if (interaction instanceof ol.interaction.DragPan) {
interaction.setActive(false);
}
}, this);