Поведения карты

Open in CodeSandbox

Взаимодействие карты с пользователем программируется с помощью поведений.

Поведения карты контролируются менеджером поведений. Cоздавать экземпляры этого класса самостоятельно не следует. Ссылка на менеджер поведений находится в поле behaviors объекта карты.

<!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&amp;apikey=<ваш API-ключ>"
            type="text/javascript"
        ></script>
        <script src="behaviors.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>
var myMap;

ymaps.ready(init);

function init() {
    myMap = new ymaps.Map(
        "map",
        {
            // Санкт-Петербург
            center: [59.93772, 30.313622],
            zoom: 10,
        },
        {
            searchControlProvider: "yandex#search",
        }
    );

    myMap.behaviors
        // Отключаем часть включенных по умолчанию поведений:
        //  - drag - перемещение карты при нажатой левой кнопки мыши;
        //  - magnifier.rightButton - увеличение области, выделенной правой кнопкой мыши.
        .disable(["drag", "rightMouseButtonMagnifier"])
        // Включаем линейку.
        .enable("ruler");

    // Изменяем свойство поведения с помощью опции:
    // изменение масштаба колесом прокрутки будет происходить медленно,
    // на 1/2 уровня масштабирования в секунду.
    myMap.options.set("scrollZoomSpeed", 0.5);
}