RU:Навигация

From OpenStreetMap Wiki
Jump to navigation Jump to search
Skobbler Navigation (приложение пошаговой онлайн-навигации для iOS).

Маршрутизация (в некоторых странах называемая навигацией; в русском языке также встречается заимствование роутинг — прим. пер.) помогает людям добраться из одного места в другое. Данные OpenStreetMap содержат информацию для маршрутизации множества вариантов передвижения, включая езду на автомобиле, велосипеде, лошади или перемещение пешком. Существует немало как работающих без доступа в сеть, так сетевых сервисов маршрутизации, использующих данные OpenStreetMap.

Для разработчиков на данной странице собраны рекомендации программного обеспечения, предназначенного для создания сервисов построения маршрута и ключевые детали данных OpenStreetMap, которые могут помочь в создании лучших движков маршрутизации. Также прилагается несколько списков рассылки.

Конечным пользователям: ПО маршрутизации

См. также: List_of_OSM_based_Services#Routing

  • Существует множество сайтов, использующих данные OpenStreetMap для создания планировщиков пути онлайн; те из них, что работают по всему миру, приведены ниже.
  • Кроме того существует несколько вариантов установки оффлайнового навигационного ПО на мобильное устройство или портативный компьютер (полный список вы можете увидеть здесь: RU:Routing/OfflineRouters).
  • Навигационные приложения доступны для Android, Apple iOS, Java ME (J2ME) и Openmoko. Чтобы узнать насчёт других мобильных платформ, см. Software#Mobile Devices.


Картографам: Улучшение геоданных

Для того, чтобы навигационное По работало хорошо, используемые ими данные должны быть хорошего качества. Прежде всего это означает, что все соединённые на карте дороги должны быть также соединены и на деле, односторонние проезжие части помечены, ограничения движения нанесены на карту и так далее. Вам стоит ознакомиться с RU:Map Features, в частном случае может пригодиться также RU:OSM_tags_for_routing для понимания специфики тегов при роутинге.

Исправление ошибок с помощью MapDust

Пример отличия соединённых и не соединённых точек в Potlatch

Многие ошибки в MapDust были добавлены напрямую из навигационных программ под iOS или Android. Это делает их отличными указателями мест, где стоит собрать данные для улучшения качества карт. Некоторые ошибки конкретно указывают на однонаправленные дороги или ограничения движения, эти ошибки так и обозначены.

Обращайте внимание на множественные ошибки "плохая маршрутизация" ("poor routing") и "прочее"("other") в пределах какого-нибудь небольшого пространства, так как это может свидетельствовать об отсутствии проезда между соединёнными на карте дорогами. В Potlatch при выделении любой линии подсвечиваются все точки, принадлежащие к этой линии. Если точка выглядит большой и квадратной это означает, что она соединена с другой линией. Для улучшения качества данных OSM можно также использовать отчёты, созданные валидатором WayCheck.

Примечание: попробуйте отключить опцию "Скрывать ошибки со стандартным описанием" ("Hide bugs with default text") в Mapdust, так как многие пользователи не меняют описание по умолчанию при использовании навигационного приложения.

Данные о скоростных ограничениях

Для улучшения расчёта быстрейшего пути, пожалуйста, добавляйте данные о скоростных ограничениях, используя тег maxspeed=*. Это особенно важно в случаях, когда ограничения скорости отличаются от принятых типовых ограничений скорости для разных типов дорог с поправкой на страну и вид транспорта.

Примечание: ITO World предоставляет несколько сервисов, которые могут помочь определить ограничения скорости, когда они не указаны.

Разработчикам

Программное обеспечение

Java:

  • Приложение для роутинга Traveling salesman ("Бродячий торговец") содержит osmNavigation — библиотеку для выполнения всех базовых процедур кроме пользовательского интерфейса. Все существенные компоненты могут быть заменены при помощи плагинов.
  • OpenTripPlanner, Сайт — это мультимодальный планировщик походов, использующий данные OSM. OTP Deployer позволяет без труда осуществить развёртывание собственного машрутизационного сервиса.
  • GraphHopper — это маршрутизационный движок для работы с (дорожными) сетями. Быстрый и не требовательный к ресурсам (для Андроида, настольного ПК и сервера).

C/C++

C#

Scala

  • osm_routing — наипростейшая реализация алгоритма Дейкстры.

Ruby

  • Mormon — версия pyroutelib на Руби

Python

  • PyrouteLib — движок маршрутизации используемый Pyroute

Mobile Device software

C/Java

  • ZANavi Android
  • Navit Linux, Windows и мобильные устройства
  • GraphHopper Android, только движок маршрутизации

Библиотеки/Инструменты разработчика

Библиотеки предназначенные для маршрутизации на основе OSM могут быть найдены здесь: Develop/Frameworks. Ниже представлен список основных компонентов:

  • DGLib Библиотека Направленного Графа (Directed Graph Library) используемая в Grass инструментах векторной сети (нахождение кратчайшего пути, задача коммивояжёра, изолинии, древа Штейнера; также дополнения)
  • Графсервер является вебсервисом, строящим кратчайший путь по дорожным картам TIGER/line и данным общественного транспорта в формате General Transit Feed Specification
  • pgRouting — Основанный на PostGIS движок маршрутизации. Дополнительный инструмент osm2pgrouting предназначен для импорта данных OSM во внутренний формат графа. Работает напрямую с таблицами SQL.
  • Libosmscout предлагает простой, высокоуровневый интерфейс для рендеринга и маршрутизации процессоров данных OSM без подключения к сети.
  • Spatialite построен на собственном маршрутизатором движке VirtualNetwork и использует инструмент spatialite_osm_net для построения маршрутизируемых сетей напрямую из данных OSM. Роутинг может использовать какА* так и алгоритм Дейкстры.

Протоколы:

  • По умолчанию используется протокол API v0.6, понятный основным серверам. Может содержать любые данные, включаемые в OSM. Получить дамп планеты: Planet.osm.
  • Существует также сжатый, но ограниченный OSM Mobile Binary Protocol.

Тип highway

Список типов дорог, построенный по убыванию предполагаемых ограничений скорости:

  1. motorway
  2. motorway_link
  3. trunk
  4. trunk_link
  5. primary
  6. primary_link
  7. secondary
  8. tertiary
  9. tertiary_link
  10. unclassified
  11. residential
  12. living_street / service
  13. track

Средняя скорость

Данные OpenStreetMap нуждаются в значениях средних скоростей, чтобы дать реалистичную оценку времени, затраченного на путь. Speedcollector представляет собой сервис для собирания полевых измерений, поскольку бывает возможно рассчитать среднюю скорость из сохранённых треков.

Global Statistical Speed Matrix ставит своей целью извлекать точные значения скорости из треков NMEA/GPX и сохранять их в базу данных для создания полезных данных при решении задач маршрутизации.

Полосность

Количество полос дороги отмечается напрямую в OSM и оказывает серьёзное влияние на среднее значение скорости (и построение быстрейшего пути), а также потребление топлива (и построение наиболее экономичного пути).

Извилистость

В некоторых научных трудах по изучению доступности [1] моделирование наглядно демонстрирует, что скорость путешествия обратно пропорциональна извилистости дороги. При помощи коэффициента извилистости (англ.) (отношение действительной протяжённости пути к кратчайшей протяжённости) на каждом отрезке пути возможно предсказать скорость в соответствии с крутизной изгиба и типом дороги. Эта модель особенно эффективна, если исключить из неё чрезмерно большие дуги, сводя большую кривую дороги к совокупности нескольких маленьких кривых: коэффициент извилистости при этом допущении будет приблизительно равен точному. Некоторые страны уже применяют этоу оценку на практике, расставляя ограничения скорости на разных изгибах дорог, но эта прективка ещё не является общепринятой.

С другой стороны, географические приближения подобные подобные теории структуры пространства (англ.) предполагают что, в городской среде, пешеходы и водители постоянно перевыбирают продолжение своего пути, основываясь на визуальной оценке маршрута. Например, пешеход, идущий из точки A в точку Б будет выбирать только широкие прямые улицы и площади с хорошим обзором, избегая изогнутых и узких улочек, даже если они помогают срезать.

Уклоны

Также как и извилистость, уклоны могут снижать скорость транспортного средства.

Состояние дороги

Другие факторы, более сложноизмеримые в нашем случае, которые также влияют на среднюю скорость включают в себя ширину дорожного покрытия, состояние дорожной сети (тип покрытия, гладкость и ремонт отдельных участков), Levels of Service (англ.) (LOS), минимальный радиус кривых поворота, крен дороги на поворотах, обозримость с учётом изгибов и перепадов высоты, etc.

В OpenStreetMap учёт всех этих факторов может быть интересен для построения маршрутов по дорогам без данных об ограничениях скорости (например: highway=unclassified).

Списки рассылки

Следующие списки рассылки имеют отношение к вопросам роутинга:

  • osm-routing 'Обсуждение маршрутизации на основе векторных данных. Особенно данных OSM'
  • osm-accessibility Данная рассылка посвящена обсуждению использования тегов и составлению пропозала об описании дорог, которое может быть важной для людей с различной инвалидностью. Предполагается создание отдельных карт на основе таких данных.

См. также

  • RU:OSM_tags_for_routing - Какие данные OpenStreetMap можно использовать для решения задач маршрутизации?
  • Rollstuhlfahrer-Routing - Немецкий проект построения пути для инвалидов-колясочников
  • Routing problems - Возникли проблемы роутинга, которые не удаётся решить с наскока? Возможно, кто-то уже предложил их решение
  • Routing profiles - Какие категории людей используют маршрутизацию и каковы их специфические потребности? Как нам расставить приоритеты, если маршрут понадобится для лошади, которая боится светофоров и предпочитает прогулки через лес? Сможем ли мы подобрать маршрут для мотоцикла с летней резиной и неработающими фарами, хозяин которого собирается ехать ночью?
  • Sample driving instructions - Фразы-инструкции для автонавигатора
  • TIGER fixup - Исправление ошибок роутинга в США, начиная с ключевых автомагистралей: TIGER fixup/250 cities
  • Train routing- Как построить маршруты на основе данных об общественном транспорте или иных работающих по расписанию службах?
  • LoroDux - Пешеходная маршрутизация для слабовидящих под мобильные платформы
  • Taxi to... - забавный сервис для сравнения маршрутов, полученных разными алгоритмами на сверхдальних дистанциях.
  • Video: Google Tech Talk - Peter Sanders - Fast Route Planning