Я использую Открытые слои с Угловой и встроил на экран простую карту. Я отключил взаимодействия вот так:
this.map = new Map({
target: 'map',
interactions: [],
layers: [this.layer],
view: this.view
});
Это предотвращает панорамирование карты при касании и перетаскивании, что мне и нужно. Тем не менее, я хотел бы иметь возможность вертикально прокручивать страницу браузера вниз, нажимая и перетаскивая карту, чтобы пользователь мог видеть контент под картой. На данный момент прокручивать страницу можно только касанием и перетаскиванием области за пределы карты.
Есть проблемы с github, связанные с этим:
https://github.com/openlayers/openlayers/issues/6767
https://github.com/openlayers/openlayers/issues/8458
Но я не мог заставить его работать. Кто-нибудь может помочь с этим?
Спасибо
Есть несколько способов добиться этого. Мой предпочтительный способ - настроить карту с помощью
import Map from 'ol/Map';
import {defaults as defaultInteractions} from 'ol/interaction';
new Map({
target: 'map',
interactions: defaultInteractions({
onFocusOnly: true
}),
// ...
});
Целевой элемент карты в разметке должен иметь атрибут tabindex
, например.
<div tabindex = "1" id = "map"></div>
Вы можете увидеть это в действии здесь: https://openlayers.org/en/latest/examples/interaction-options.html. Идея состоит в том, что пока карта не находится в фокусе, вы можете перемещаться и прокручивать страницу. Только когда он находится в фокусе (например, после щелчка по карте), жесты панорамирования и прокрутки изменят вид карты.
Хорошо, ты прав. Похоже, что-то должно было измениться за это время, потому что я тестировал его тогда на сенсорных устройствах.
Превосходно! Большое спасибо. Я проверю это снова в следующем выпуске OpenLayers.
Привет @ahocevar - я только что попробовал последнюю версию библиотеки openlayers 6.0.1 в своем проекте. К сожалению, прокрутка страницы перетаскиванием карты по-прежнему не работает. Я также пытался указать мобильный браузер на openlayers.org/en/latest/examples/interaction-options.html, и там он тоже не работает. Возможно, исправление, сделанное вами с помощью запроса на включение github.com/openlayers/openlayers/pull/9634, было отменено другим более поздним запросом на включение? Спасибо за совет.
Вы правы, это снова было сломано. См. github.com/openlayers/openlayers/pull/10187 для нового исправления.
Привет, @ahocevar. Только что обновился до последней версии openlayers (v6.1.1), и теперь свайп для прокрутки работает в мобильном браузере. Большое спасибо за ваше исправление и поддержку.
Привет, спасибо за предложение. К сожалению, я это уже пробовал. Вы упомянули приведенное выше предложение в темах github, на которые я ссылался в своем вопросе. На мобильном устройстве не работает. Если коснуться карты и попытаться перетащить экран, он не двигается. Ссылка, которую вы разместили (openlayers.org/en/latest/examples/interaction-options.html), также демонстрирует, что это «не работает» на мобильном устройстве, к сожалению.