OpenLayers по умолчанию масштабируется, когда пользователь дважды щелкает по карте.
Каков наилучший способ отключить это поведение?
OpenLayers по умолчанию масштабируется, когда пользователь дважды щелкает по карте.
Каков наилучший способ отключить это поведение?
Функция увеличения двойного щелчка, по-видимому, является функциональностью в элементе управления OpenLayers.Control.Navigation
. Дополнительную информацию см. В OpenLayers Reference.
Небольшой и очень усталый пример:
var Navigation = new OpenLayers.Control.Navigation({
defaultDblClick: function(event) { return; }
});
Я помню, что элемент управления Navigation автоматически добавляется на карту, если во время инициализации карты не установлены никакие элементы управления. Поэтому вам, возможно, придется добавить элемент управления Navigation your self.
Надеюсь, что это поможет =)
Вышеприведенный ответ верен, но вам нужно будет явно добавить этот элемент управления на карту, чтобы переопределить навигационное управление по умолчанию, то есть
var Navigation = new OpenLayers.Control.Navigation({
defaultDblClick: function(event) { return; }
});
map.addControl(Navigation);
По умолчанию добавляются следующие элементы управления: OpenLayers.Map: OpenLayers.Control.Navigation, OpenLayers.Control.PanZoom, OpenLayers.Control.ArgParser, OpenLayers.Control.Attribution
Итак, еще один вариант, если вы хотите отключить все эти поведения по умолчанию, - отправить пустой массив в параметр options конструктора карты открытых слоев, см. текст ссылки для более подробной информации.
Документация OpenLayers 3 Ссылка.
Статический путь:
var map = new ol.Map({
interactions: ol.interaction.defaults({ doubleClickZoom: false }),
...
});
Динамический путь:
var interactions = map.getInteractions();
for (var i = 0; i < interactions.getLength(); i++) {
var interaction = interactions.item(i);
if (interaction instanceof ol.interaction.DoubleClickZoom) {
map.removeInteraction(interaction);
break;
}
}