Клуб API Карт

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

kvityasya
16 марта 2012, 07:30

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




    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

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

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

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

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

Виктор, для каждого маршрута вы сможете получить координаты точек автоматически с помощью геокодирования: 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

 

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