|
| ||||||||||||||||||||||
|
|
← Ctrl предыдущаяследующая Ctrl →
МаршрутизаторМаршрутизатор — сервис автоматического прокладывания маршрутов на Яндекс.Картах. Сервис позволяет автоматически вычислять маршрут перемещения между заданными пунктами и получать различную информацию о проложенном маршруте (протяженность маршрута, время преодоления, а также данные, необходимые для построения маршрутного листа). ![]() В режиме бета-тестирования сервис доступен для построения маршрутов по Москве и Московской области, а также для городов Украины. Точки маршрутаДля прокладывания маршрута используется класс YMaps.Router, которому необходимо передать точки остановки и транзитные точки маршрута. Точка остановки (YMaps.WayPoint) — точка, в которой предполагается или возможна остановка. Начальная и конечная точки маршрута всегда являются точками остановки. Транзитная точка (YMaps.ViaPoint) — точка, в которой остановка не предполагается, но через которую нужно проложить маршрут. Массив индексов транзитных точек передается вторым параметром конструктора YMaps.Router. Нумерация индексов начинается с нуля (см. пример ниже). Точки маршрута можно задать, указав либо их координаты, либо адрес. Во втором случае координаты будут вычислены автоматически с помощью геокодера (см. пример ниже): или Если через какую-то точку невозможно проложить маршрут (например, точка находится вне трассы), маршрутизатор попытается проложить маршрут максимально близко к ней. События построения маршрутаВо время построения маршрута объекты класса YMaps.Router генерируют события, которые могут быть обработаны стандартными средствами JavaScript API. Построение маршрута — асинхронная операция, поэтому оперировать объектами класса YMaps.Router можно только после того, как было сгенерировано событие Success (см. пример ниже). События генерируются следующим образом. Вначале отправляется запрос серверу. Если ответ получен, генерируется событие Load, в противном случае — событие Fault. Эти два события показывают, может ли быть установлено соединение с сервером. Если соединение с сервером установлено, производится попытка построения маршрута. Если маршрут проложен, генерируется событие Success. В противном случае генерируется одно из событий GeocodeError или RouteError, отражающих причины, по которым не удалось вычислить маршрут. При этом в обработчик события будет передан индекс точки, которую не удалось геокодировать или до которой невозможно проложить маршрут. Пример: неудачное геокодирование Пример: недоступность точки Отрезки маршрутаYMaps.Router задает отрезок между двумя соседними точками остановки. Таким образом, если в конструктор маршрутизатора передано 3 точки остановки, то будет доступно два отрезка маршрута. Проложенный с помощью YMaps.Router маршрут представляется в виде списка объектов YMaps.Route. Для определения количества объектов YMaps.Route используется метод getNumRoutes(). Для доступа к конкретному объекту YMaps.Route по его индексу используется метод getRoute(). Объекты класса YMaps.Route описывают траекторию перемещения с помощью ломаной линии (YMaps.Polyline), которая разбивается на отрезки (YMaps.RouteSegment). Класс YMaps.RouteSegment описывает логически выделенный отрезок маршрута. Достижение конца отрезка, при движении по маршруту, может указывать, например, на то, что производится выезд на другую улицу или на то, что в данном месте возможен поворот. Как для полного, так и для промежуточных маршрутов и их отрезков можно получить информацию о протяженности, времени передвижения по ним и ряд других параметров (см. пример ниже). Для определения количества отрезков в маршруте используется метод getNumRouteSegments(). Для доступа к конкретному отрезку по его индексу используется метод getRouteSegment(). Нумерация индексов начинается с нуля. ![]() По умолчаню отрезки маршрута не обрабатывают действия пользователя и не генерируют событий, т. к. для них режим интерактивности установлен в значение YMaps.Interactivity.NONE. Для обработки событий необходимо поменять значение интерактивности у отрезков маршрута. Отображение маршрута на картеКласс YMaps.Router реализует интерфейс YMaps.IOverlay, т.е. проложенный маршрут может быть сразу помещен на карту. Использование опции viewAutoApply позволяет автоматически подбирать центр и масштаб карты таким образом, чтобы маршрут был виден на карте целиком и при этом уровень масштабирования карты был максимален. ПримерПример добавляет на карту схему проезда ст.м. Арбатская - Кропоткинская - Третьяковская. Полный маршрут делится на два: Арбатская - Кропоткинская и Кропоткинская - Третьяковская. Пример создает простейший маршрутный лист, позволяющий проехать по второму маршруту |
| Работайте в Яндексе |
© 2008—2012 «Яндекс»
|