Клуб API Карт

Как создать схему проезда без указания map.setCenter

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

Хочу на странице вывести маршрут из одного города в другой




    YMaps.jQuery(function () {
        var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
        // Установка для карты ее центра и масштаба
        map.setCenter(new YMaps.GeoPoint(37.61, 55.74), 2);
        var router = new YMaps.Router(['Благовещенск','Москва']);
        map.addOverlay(router);
    });


Если параметр map.setCenter(new YMaps.GeoPoint(37.61, 55.74), 2); указан то карта выводится, если нет то серый экран

Как узнать какие координаты центра и масштабирования должны быть?

Подбирать для каждого случая не вариант, так как таких маршрутов сотни

8 комментариев

Может Вам указать

viewAutoApply: true

В опциях Router

карта физически запускается только после установки центра.

так всетаки как сделать чтобы работало, если можно готовый пример

Sergey Konstantinov
28 января 2016, 05:10

Выше ответили.

Тогда другой вопрос как узнать координаты центра карты если извезтны названия начального и конечного города? И как узнать какое масштабирование выбрать?

Виктор, для каждого маршрута вы сможете получить координаты точек автоматически с помощью геокодирования: http://api.yandex.ru/maps/geocoder/doc/desc/concepts/About.xml

Виктор (Витя) и Виталий это разные имена.

Виктор, я тоже недавно столкнулся примерно с похожей проблемой, причем справка по Яндекс.Картам пока что слабенькая, а Google видимо намеренно эту справочную информацию неверно индексирует (без учета контекста), т.к. конкурента боится.

Я так понимаю, что карту можно инициализировать через map.setCenter() и map.setBounds(). Так вот Вам нужно вторая функция setBounds(). В качестве параметра ей необходимо передать YMaps.GeoObjectCollection, которая будет содержать YMaps.GeoPoint начала и конца. Она сама выбирет оптимальный масштаб.

Как и у карт гугла, так и у яндекса, есть параметр для рутера (роутера)  (как хотите называть).

Этот параметр указывает, как выводить маршрут - автоматически изменить масштаб и центр карты чтобы отобразить весь маршрут как есть, или не изменять ничего и видеть только фрагмент карты с маршрутом, определенным центром карты.

Как я выше указал, достаточно указать

- для Яндекс.Карты: viewAutoApply: true

- для Google Maps v3: preserveViewport:false

 

Ведь просто можно прочитать доку по указанным свойствам :)