Обзор
Использование карты на веб-странице может потребовать специальных параметров для управления взаимодействием пользователей с картой (масштабированием и панорамированием). Эти параметры, такие как 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 |
gestureHandling: 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, }, }, });