Использование опции ограничения области просмотра карты
Бывают случаи, когда необходимо ограничить видимую область карты, чтобы у пользователей не было возможности выйти за её пределы.
Для таких случаев у карты есть опция «restrictMapArea», которая может принимать в качестве входных параметров прямоугольную область, либо булево значение. В случае «true» пользователь не сможет выйти за пределы изначальной видимой области карты.
С подробным описанием опции можно ознакомиться здесь.
Если недостаточно просто ограничить область просмотра прямоугольником и необходимо решить более сложную задачу (например, запретить центру карты выходить за пределы какого-либо полигона), то с помощью map.action.Manager.setCorrection, можно задать функцию, которая будет корректировать действия пользователя на карте.
<!DOCTYPE html>
<html>
<head>
<title>
Использование опции ограничения области просмотра карты
</title>
<meta
http-equiv="Content-Type"
content="text/html; charset=utf-8"
/>
<!--
Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
-->
<script
src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=<ваш API-ключ>"
type="text/javascript"
></script>
<script src="restrict_map_area.js" type="text/javascript"></script>
<style>
html,
body,
#map {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
</style>
</head>
<body>
<div id="map"></div>
</body>
</html>
ymaps.ready(function () {
var myMap = new ymaps.Map(
"map",
{
center: [59.938, 30.3],
zoom: 9,
controls: ["smallMapDefaultSet"],
},
{
// Зададим ограниченную область прямоугольником,
// примерно описывающим Санкт-Петербург.
restrictMapArea: [
[59.838, 29.511],
[60.056, 30.829],
],
}
);
});