Клуб API Карт

Аналог свойства mapStateAutoApply

Пост в архиве.

Здравствуйте.

На карте прокладывается маршрут. Необходимо чтобы на карте автоматически выставлялся центр и коэффициент масштабирования таким образом, чтобы построенный маршрут был виден целиком. С этой задачей отлично справляется свойство mapStateAutoApply:

ymaps.route([[a[0]['coords-x'], a[0]['coords-y']], [a[1]['coords-x'], a[1]['coords-y']]], {mapStateAutoApply: true}).then(function(route){

  // ...

});

Возможно ли установить "отступы" для карты? То есть чтобы построенный маршрут полностью был виден, а также сверху, справа, снизу и слева на карте гарантированно оставались указанные "зазоры", на которые построенный маршрут не "залазил" бы. Например: top, right, bottom выставить 20px, а left = 320px. Для наглядности скриншот - построенный маршрут не должен выходить за красный прямоугольник.

1 комментарий

кейс достаточно редкий, Вы первый кому он понадобился.

Могу дать вам вектор для реализации.

0. Отключаете mapStateAutoApply: true

1. Получаете из маршрута путь (это геообъект - полилиния)

2. Методом его геометрии получаете пиксельную геометрию и из нее область, которую он занимает.

3. Прибавляете к ней свои пиксельные отступы

4. Пересчитываете через метод проекции в геокоординаты (зум взять у карты)

5. Устанавливаете новую область карте методом setBounds