Обзор
Использование карты на веб-странице может потребовать определенных параметров для управления тем, как пользователи взаимодействуют с картой для масштабирования и панорамирования. Эти параметры, такие как gestureHandling
, minZoom
, maxZoom
и restriction
, определены в интерфейсе MapOptions .
Поведение по умолчанию
Следующая карта демонстрирует поведение по умолчанию для взаимодействия с картой, для которой определены только параметры zoom
и center
.
Код этой карты приведен ниже.
Машинопись
new google.maps.Map(document.getElementById("map")!, { zoom, center, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, });
Управление обработкой жестов
Когда пользователь прокручивает страницу, содержащую карту, действие прокрутки может непреднамеренно привести к масштабированию карты. Это поведение можно контролировать с помощью параметра gestureHandling map.
жестОбработка: cooperative
Карта ниже использует параметр gestureHandling , установленный на cooperative
, что позволяет пользователю прокручивать страницу обычным образом, без масштабирования или панорамирования карты. Пользователи могут масштабировать карту, нажимая на элементы управления масштабированием. Они также могут масштабировать и панорамировать карту, используя движения двух пальцев на карте для устройств с сенсорным экраном.
Код этой карты приведен ниже.
Машинопись
new google.maps.Map(document.getElementById("map")!, { zoom, center, gestureHandling: "cooperative", });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, gestureHandling: "cooperative", });
ЖестОбработка: auto
Карта в верхней части страницы без параметра gestureHandling
ведет себя так же, как и предыдущая карта с параметром gestureHandling , установленным на cooperative
поскольку все карты на этой странице находятся в <iframe>
. Значение gestureHandling по умолчанию auto
переключается между greedy
и cooperative
в зависимости от того, содержится ли карта в <iframe>
.
Карта, содержащаяся в <iframe> | Поведение |
---|---|
да | cooperative |
нет | greedy |
жестОбработка: greedy
Ниже представлена карта с gestureHandling , установленным на greedy
. Эта карта реагирует на все жесты касания и события прокрутки в отличие от cooperative
.
ЖестОбработка: none
Параметр gestureHandling также можно установить на none
, чтобы отключить жесты на карте.
Отключение панорамирования и масштабирования
Чтобы полностью отключить возможность панорамирования и масштабирования карты, необходимо включить две опции: gestureHandling и zoomControl .
Машинопись
new google.maps.Map(document.getElementById("map")!, { zoom, center, gestureHandling: "none", zoomControl: false, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, gestureHandling: "none", zoomControl: false, });
На карте ниже показано сочетание gestureHandling и zoomControl в коде выше.
Ограничение границ карты и масштабирования
Может быть желательно разрешить жесты и управление масштабированием, но ограничить карту определенными границами или минимальным и максимальным масштабированием. Для этого можно задать параметры restriction , minZoom и maxZoom . Следующий код и карта демонстрируют эти параметры.
Машинопись
new google.maps.Map(document.getElementById("map")!, { zoom, center, minZoom: zoom - 3, maxZoom: zoom + 3, restriction: { latLngBounds: { north: -10, south: -40, east: 160, west: 100, }, }, });
JavaScript
new google.maps.Map(document.getElementById("map"), { zoom, center, minZoom: zoom - 3, maxZoom: zoom + 3, restriction: { latLngBounds: { north: -10, south: -40, east: 160, west: 100, }, }, });