Как стать автором
Обновить

Комментарии 19

К сожалению, сам сервис у них не предоставляет возможность строить маршруты. И существующий api карт нам тоже немного не подошел.
А как обновляете данные? Мапбокс недавно рассказывали что в осрм появилась возможность переключаться с дампа на дамп не останавливая сервис, практически мнгновенно.

И второе, учитываете ограничения? bicycle=no например? Исспользуете ли данные о покрытие при простановке стоимости ребер? Строится ли маршрут по ступенькам? С пеналити/без?
Данные пока обновляем перезапуском сервера. Сначала генерируем граф на отдельной машине и после, прописав новые файлы в server.ini, перезапускаем сервис.
По второму списку вопросов, боюсь ответить не правильно, т.к. в исходниках мы глубоко пока не смотрели. Насчет ограничений, насколько мы изучили все, пока что они не учитываются при построении маршрута.
Настройки построения маршрута вынесены в lua-скрипты. Для велосипедов profiles/bicycle.lua — учет необходимых тэгов вы можете поправить там самостоятельно.
Посмотрите еще в сторону brouter — brouter.de/brouter-web/ (код github.com/nrenner/brouter-web) Также базируется на данных OSM, готовить их не надо, доступны brouter.de/brouter/segments2/. Не могу сказать о разнице в качестве, но разница с OSRM чуть описана автором groups.google.com/d/msg/osm-android-bikerouting/yqJ-7_PF2xU/nKZywihvSLcJ
На нашем сервере (Core i5, 8GB RAM, 5400), файл с картами размером 35 ГБ в итоге обрабатывался 4 часа.

Т.е. вы развернули граф на всю планету на этой машине? И prepare нормально отработал? Просто он на карте мира есть память как не в себя и 8GB мало. Мне требовалось раз в 20 больше памяти (пришлось половину держать на свопе), при том, что у меня был автомобильный граф, а велосипедный, вроде, требует больше памяти.
на карте мира есть память на карте мира ест память
OSRM еще и ищет ближайшие точку начала и конца маршрута к указанным по координатам. То есть если вы задаете точку в которой нет роута, то будет найдена «ближайшая», но это работает весьма странно периодически. Могут возникать разрывы шаблона у пользователя, который ткнул в одну точку, а маршрут начался из неочевидной.
А HERE API пробовали? Вот тот же пример на HERE:

Не нашёл у них велосипедных маршрутов, только автомобили и пешеходы. Вы, видимо, пешеходный имели ввиду?
Нет, именно велосипедные. Граф маршрутов строиться в зависимости от выбранного профиля.
В папке с профилями есть bicycle.lua
После этого osrm-extract извлекает именно велосипедные дорожки.
Я отвечал на комментарий о HERE API. Про велосипеды в OSRM я знаю :)
есть ещё прекрасный сервис OpenRouteService.org. Удобно строить для велосипеда маршруты.
Извиняюсь за глупый вопрос, тема относительно новая для меня…
Карты брали у Project OSM, а данные для графа из OpenStreetMap. Я так понимаю эти данные для графа содержат уже координаты населенных пунктов? Просто судя по описанию API, на входе всегда широта и долгота, вот и пытаюсь понять нужно ли их вычислять отдельно или уже все есть в БД…
И еще у вас в тексте указано что тайлы от Яши и Mapbox, они разве отдельно загружаются?

Заранее спасибо
Чтобы запустить сервер, ему необходимо подготовить данные, для построения графа. Чтобы загрузить их, необходимо их извлечь из карт OpenStreetMap. Делается это, входящими в комплект утилитами.
Но, сначала нужно скачать карту региона, для которого вы хотите строить маршруты.
Разработчики, предлагают использовать сервис GeoFabrik. На котором можно скачать карты для основных материков земли, отдельных стран и регионов. Но, нам захотелось большего, и мы выкачали целиком карту планеты через Planet OSM.
С помощью утилиты osrm-extract, данные извлекаются из карты и сохраняются для дальнейшей загрузки.
Вот тут-то всё и лежит.
И еще у вас в тексте указано что тайлы от Яши и Mapbox
Думаю, это просто следование лицензионному соглашению. Под иллюстрацией даны ссылки на соответствующих правообладателей.

прошло 7 лет - сервис сломался

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории