Нужен граф дорог России - что делать/с чего начать?

Чтобы не быть голословным по поводу клякс, поясню: глядит это вот так http://www.openstreetmap.ru/?mapid=842950830 (бывает хуже)
А “чистить” - http://www.gpsbabel.org/htmldoc-development/filter_discard.html как минимум, sat=4

Так почему просто не взять базу из OSM целиком и использовать у себя?

2 s777n
А как её можно “взять”?

У OSRM как раз есть свой api: https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api
Он умеет искать ближайшую к заданной точке дорогу и прокладывать маршрут, выплевывая последовательность ребер по которым нужно проехать, а также общие характеристики маршрута (длину, время проезда и т.п.). Для начала можно отладиться на их апи, а потом поднять свой, с нужными настройками.

OSM - это общая база данных геообъектов. В том числе и дорог. Вам нужно отфильтровать из общей базы интересующие вас данные и сконвертировать их в вашу базу.

Но если вы собираетесь в дальнейшем править эти данные, то тут уже встаёт вопрос лицензии. Нельзя просто так скопировать данные и дальше развивать их в закрытом режиме - лицензия OSM это запрещает. Вот если вы правки будете вносить в OSM - тогда пожалуйста.

Разве? Вроде б раньше запрещалась только публикация таких данных. А для себя в закрытом режиме - сколько угодно

Да, упустил. Если только внутри компании - то можно. :roll_eyes:

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

Я всё понял. Ткните пожалуйста в ссылку для нубья - с чего начать - как выбрать нужные мне дороги??

s777n, спасибо огромное!

Пыщь
Прежде всего, обратите внимание на теги highway и route=ferry.

БД вам поднимать совсем не обязательно, можно просто скачать дамп и распарсить его (если он в формате osm, то любым событийным XML-парсером, навроде SAX), заливая по ходу дела в свой MySQL. Хотя с вашим форматом, наверное, так просто не получится, и таки придется сначала залить в БД. :3

Ну или поднять свой OSRM, там и API, и нужные алгоритмы реализованы.

Вот здесь смотрите раздел Работа с данными OpenStreetMap.

Парни, а какой шаг у ребра дороги? Есть какие-то соглашения/правила?

Кстати, я тут для себя сделал плугинчик к osmosis, который позволяет упростить фильтрацию и разборки со связностью в дорожном графе:

http://forum.openstreetmap.org/viewtopic.php?pid=270474#p270474

Для собственного строительства графов роутинга - самое то.

Сложно-то как всё.

Кто за вознаграждение поможет? Нужны дороги России с шагом скажем в 15 км и города с шагом поменьше.
Всё это надо дать/или научить как - в удобном формате, без зауми и карусели расширений.

В одно жало я чувствую потрачу на это дофига времени.

Что конкретно хочется в результате получить?

Что имеется в виду под “дороги с шагом 15 км”?

Конкретно.

Хочется получить некую структуру данных, которую я смогу обработать в C#.
Если же это будет MS SQL БД - вообще замечательно.

Структура содержит:

  1. Ноды.
  2. Ребра.

Дороги России и города.

Ребра ссылаются на ноды. (Ну что бы мне не парится с координатами, но я могу).

Вот длина ребер - это вопрос.
Для дорог мне видится - не больше 15 км.
Для города наверное меньше.

Для ребер и нод указывается некий регион.
Город или название дороги.

В общем - главная цель - соблюсти баланс между полнотой покрытия и мельчением.

Граф направленный или ненаправленный? Ограничения поворотов, запреты проездов как задавать планируете?

До какого уровня дороги нужны? До дворовых проездов или только основные магистрали?

Города должны быть узлами графа или нет?

Вот так это выглядит сейчас и это плохо. Дорога одна и это плохо. Машина точки графа просто объезжает по непроложенным дорогам и мне это не зафиксировать.