Pull to refresh

Comments 4

В самом начале статьи написано, что мы хотим сделать качественный роутинг. Этот проект относится к вариантом простого роутинга, даже слишком — например, расстояния от заданных точек до улиц игнорируются, при том, что они могут составлять примерно 1/5 всего маршрута и, вдобавок, пешую его часть, то есть время на прохождение автомобильного маршрута может удвоиться при учете этих сегментов. Также, как указано в статье, последовательность посещения адресов зачастую беспорядочная, что очень усложняет движение по такому маршруту — попробуйте не сделать ошибки, выполняя сотни беспорядочных поворотов. И так далее...

Спасибо за статью!
Подскажите, я правильно понимаю, что пункт «Как превратить карту дорог OpenStreetMap в дорожную сеть для роутинга» содержит только теоретические выкладки и готового решения (набора sql) нет?
В репозитории, как я вижу, уже готовый дамп таблицы лежит. А вот как его получить для кастомной выгрузки OSM — не очень понятно. Задача не выглядит тривиальной.

Пожалуйста! К сожалению, единого готового решения у меня нет — использую разный код предобработки OSM для США, Германии или Сингапура. Для разных государств данные сильно отличаются, так что это приходится учитывать — скажем, точность карты в Берлине и в глубинке России кардинально разная, а для карты сомнительной точности нужно писать эвристики для соединения дорог с пропущенными сегментами, нахождения пересечений дорог и так далее. Кроме того, в разных версиях PostgreSQL/PostGIS на некоторых геометриях наблюдаются различные ошибки, зависящие от комбинации этих версий, приходится обходные пути искать (функции крэшатся или индексы не работают на валидных геометриях и прочее), что делает код местами переусложненным. Недавно обновлял код одного из проектов, так вот на PostgreSQL 13 со свежим PostGIS почти все такие «заплатки» удалось убрать, а вот поведение PgRouting на Linux Debian/Ubuntu и MacOS все еще кардинально отличается — предпочитаю параллельно тестировать на двух разных операционках, так итоговый результат стабильнее получается. Так что OSM использовать можно и нужно, но на практике необходимо много работы по чистке, валидации и исправлению данных для конкретной задачи.

Sign up to leave a comment.

Articles