---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/map.action.Manager.md
  - https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/jsapi-v2-1/doc/ru/llms.txt

# map.action.Manager

Расширяет [IEventEmitter](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md).

Менеджер действий карты. Позволяет выполнять сложные движения на карте и гарантирует, что сложные движения не наложатся друг на друга. У каждой карты уже есть собственный менеджер действий, доступный как [Map.action](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Map.md#action). Не создавайте экземпляры этого класса без необходимости.

**См.:** [Map.action](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Map.md#action)

[Конструктор](#constructor-summary) | [Поля ](#properties-summary) | [События ](#events-summary) | [Методы ](#methods-summary)

## Конструктор {#constructor-summary}

```javascript
map.action.Manager(map)
```

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`map`](#param-map)[*](*star) | — | Тип: [Map](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Map.md)

Карта. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
// Создадим сложное движение: каждые 100 мс центр
// карты будет смещаться на случайную величину.

// Создание экземпляра сложного движения
var action = new ymaps.map.action.Continuous();
// Выполнение его на карте
myMap.action.execute(action);

//  Вызов центра пиксельной карты и уровня масштабирования
var center = myMap.getGlobalPixelCenter();
var zoom = myMap.getZoom();
// Создание случайного сдвига каждые 100 миллисекунд
var interval = window.setInterval(function () {
    center[0] += Math.round(Math.random() * 100) - 50;
    center[1] += Math.round(Math.random() * 100) - 50;
    // Создание нового сдвига на карте
    action.tick({
        globalPixelCenter: center,
       zoom: zoom
    });
}, 100);

// Как только пользователь перемещает карту, наше движение
// перестает выполняться, и происходит событие "end".
var listener = action.events.once('end', function () {
    listener.removeAll();
    window.clearInterval(interval);
});
```

## Поля {#properties-summary}

#|
|| **Имя** | **Тип** | **Описание** ||
|| [events](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md#events) | [IEventManager](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventManager.md) | Менеджер событий.

Унаследовано от [IEventEmitter](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IEventEmitter.md#events). ||
|#

## События {#events-summary}

#|
|| **Имя** | **Описание** ||
|| [begin](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#event-begin) | Событие, возникающее, когда действие началось. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - запущенное действие. ||
|| [break](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#event-break) | Событие, возникающее при досрочном прекращении шага действия (например, из-за выполнения другого действия или нового шага того же действия). Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - действие. ||
|| [end](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#event-end) | Событие, возникающее при остановке действия. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - остановленное действие. ||
|| [tick](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#event-tick) | Событие, возникающее, когда очередной шаг действия начинает исполняться. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - выполняемое в данный момент действие;
- tick – описание шага действия в виде объекта с полями globalPixelCenter, zoom, duration и timingFunction. ||
|| [tickcomplete](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#event-tickcomplete) | Событие, возникающее при окончании выполнения шага действия. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - выполняемое в данный момент действие;
- tick – описание шага действия в виде объекта с полями globalPixelCenter, zoom, duration и timingFunction. ||
- |#


## Методы {#methods-summary}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [breakTick](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#breakTick)() | | Прерывает очередной шаг действия. ||
|| [execute](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#execute)([action](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#execute-param-action)) | | Запускает выполнение действия на карте. Если в этот момент на карте выполняется какое-то другое движение, то оно останавливается (вызывается метод end). Новое движение запускается посредством вызова метода begin. ||
|| [getCurrentState](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#getCurrentState)() | Object | Определяет состояние карты в момент ее плавного движения. ||
|| [getMap](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#getMap)() | [Map](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Map.md) | Возвращает ссылку на карту. ||
|| [setCorrection](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#setCorrection)([userFunction](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#setCorrection-param-userFunction)) | | Позволяет устанавливать пользовательские коррекции для сложных движений на карте. По окончанию коррекции необходимо вернуть скорректированные значения. ||
|| [stop](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.action.Manager.md#stop)() | | Останавливает выполнение действия на карте. ||
|#

## Описание событий {#event_detail}

### begin {#begin}

Событие, возникающее, когда действие началось. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - запущенное действие.

### break {#break}

Событие, возникающее при досрочном прекращении шага действия (например, из-за выполнения другого действия или нового шага того же действия). Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - действие.

### end {#end}

Событие, возникающее при остановке действия. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - остановленное действие.

### tick {#tick}

Событие, возникающее, когда очередной шаг действия начинает исполняться. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - выполняемое в данный момент действие;
- tick – описание шага действия в виде объекта с полями globalPixelCenter, zoom, duration и timingFunction.

**Пример:**

```javascript
// Отслеживает все перемещения карты, даже перетаскивание пользователем
// и плавное масштабирование.
myMap.action.events.add('tick', function (e) {
    var tick = e.get('tick');
    console.log('Сейчас карта переместится в точку (' +
        myMap.options.get('projection').fromGlobalPixels(tick.globalPixelCenter, tick.zoom).join(',') +
        ') в течение ' + e.get('tick').duration + ' миллисекунд');
});
```

### tickcomplete  {#tickcomplete}

Событие, возникающее при окончании выполнения шага действия. Экземпляр класса [Event](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md). Имена полей, доступных через метод [Event.get](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Event.md#get):
- action - выполняемое в данный момент действие;
- tick – описание шага действия в виде объекта с полями globalPixelCenter, zoom, duration и timingFunction.

## Описание методов {#method_detail}

### breakTick

```javascript
{} breakTick()
```

Прерывает очередной шаг действия.

### execute {#execute}

```javascript
{} execute(action)
```

Запускает выполнение действия на карте. Если в этот момент на карте выполняется какое-то другое движение, то оно останавливается (вызывается метод end). Новое движение запускается посредством вызова метода begin.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`action`](#execute-param-action)[*](*star) | — | Тип: [IMapAction](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/IMapAction.md)

Действие. ||
|#

\* Обязательный параметр/опция.

### getCurrentState {#getCurrentState}

```javascript
{Object} getCurrentState()
```

Определяет состояние карты в момент ее плавного движения.

**Возвращает** объект с полями: isTicking — выполняется ли сейчас шаг плавного движения; tickProgress — какая часть текущего шага выполнена; zoom — масштаб карты во время текущего шага; globalPixelCenter — центр карты в глобальных пикселях в момент текущего шага.

**Пример:**

```javascript
// Регистрирует текущий центр карты.
// Работает даже во время плавного масштабирования или незавершенного
// перетаскивания карты пользователем.
window.setInterval(function () {
    console.log(myMap.action.getCurrentState().center.join(', '));
}, 100);
```

### getMap {#getMap}

```javascript
{Map} getMap()
```

**Возвращает** ссылку на карту.

### setCorrection {#setCorrection}

```javascript
{} setCorrection(userFunction)
```

Позволяет устанавливать пользовательские коррекции для сложных движений на карте. По окончанию коррекции необходимо вернуть скорректированные значения.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`userFunction`](#setCorrection-param-userFunction)[*](*star) | — | Тип: Function

Пользовательская функция коррекции шагов. ||
|#

\* Обязательный параметр/опция.

**Пример:**

```javascript
// Сделаем так, чтобы пользователь не мог перетащить центр карты
// за пределы МКАД.
var mkad = [
    [55.785017, 37.841576],
    [55.861979, 37.765992],
    [55.898533, 37.635961],
    [55.888897, 37.48861],
    [55.83251, 37.395275],
    [55.744789, 37.370248],
    [55.660424, 37.434424],
    [55.5922, 37.526366],
    [55.574019, 37.683167],
    [55.62913, 37.802473],
    [55.712203, 37.837121]
],
mkadPolygon = new ymaps.Polygon([mkad], {}, {
    fillColor: '#FFFF00',
    opacity: .4
});
myMap.geoObjects.add(mkadPolygon);
myMap.action.setCorrection(function (tick) {
    var projection = myMap.options.get('projection'),
        tickCenter = projection.fromGlobalPixels(tick.globalPixelCenter, tick.zoom);
    // Если центр карты не входит в нашу область.
    if (!mkadPolygon.geometry.contains(tickCenter)) {
        tick.globalPixelCenter = projection.toGlobalPixels(
            mkadPolygon.geometry.getClosest(tickCenter).position,
            tick.zoom
        );
        tick.duration = 0;
    }
    return tick;
});
```

### stop {#stop}

```javascript
{} stop()
```

Останавливает выполнение действия на карте.

<!-- XLIFF_FARM_NTdmNDBk_CACHING -->

[*star]: Обязательный параметр.