Конвертер OSM -> MP

liosha, а можно заставить osm2mp оставить в карте только роутинговый граф, выкинув все остальные объекты?

А не проще osmosis-ом отфильтровать только то что нужно?

отключить все нероутинговые конфиги

это можно сделать одним махом или придется долго и вдумчиво тереть лишнее из конфиг. файлов?

может быть и проще, осталось понять, как это сделать? через --tt у меня не получилось оставить только роутинг и не поломать его…

оставить только *-roads

Надо не через --tt а через --tf. Оставить только нужные линии highway + отношения type=restriction и все точки, на которые они ссылаются.

Типа такого: --tf accept-ways highway=* --tf accept-relations type=restriction --used-node --used-way

Типы highway можно перечислять через запятую: --tf accept-ways highway=motorway,motorway_link,trunk,trunk_link

я имел в виду tf, конечно. пробовал, не получилось.

Непонятная ошибка при операции “Processing ways”. Выскакивает куча подобных и меняется только номер линии (как видно).

Use of uninitialized value $chain[0] in hash element at C;.…\osm2mp.pl line 1040, <$[…]> line 2192553.
Use of uninitialized value in concatenation (.) or string at C:.…\osm2mp.pl line 1040, <$
[…]> line 2192553.
Use of uninitialized value $chain[0] in hash element at C;.…\osm2mp.pl line 1040, <$[…]> line 2203568.
Use of uninitialized value in concatenation (.) or string at C:.…\osm2mp.pl line 1040, <$
[…]> line 2203568.

Потихоньку начал глобальный рефакторинг конвертера, а то там полный ужос-ужос.
Уже сделано:

  • единый скрипт развален на модули (уже давно перерос тот формат)
  • исходный .osm теперь читается стандартным xml-парсером в один проход - должно стать быстрее, и можно подавать вход на stdin
  • поменялся формат мастер-конфига, теперь это обычный ini, и в него вынесены дефолтные опции; остальное осталось в yaml
  • сильно поменялись внутренности обработки фич-конфигов (должно стать побыстрее и построже), но внешне они остались почти такими же
  • остальное (в том числе генерация роутинга) по возможности оставлено нетронутым, хотя там ещё разгребать и разгребать…
  • и это только начало :slight_smile:

Новые фичи пока все в статусе беты, использовать с осторожностью.

getbound.pl RU-MOS > RU-MOS.poly
Downloading RelID=51490…Failed

таймаут 900 поставил, не помогло. Хотя ID верный. :expressionless:
И ещё в aliases.yml неверно указаны ID Мурманской и Тверской областей, должно быть 2099216 и 2095259 соответственно.

Это апи падает, внешним таймаутом тут не поможешь.
http://www.openstreetmap.org/api/0.6/relation/51490/full
Если не вылечится, придётся что-то придумывать.

спасибо, поменял

Уже пора придумывать, ибо есть релейшены, которые не качаются хронически. У Gryphon есть некий питоновский скрипт, который качает как-то подругому и потом скармливает результат твоему скрипту. Может их как-то объединить в единый инструмент?

Придумать-то несложно, но по-хорошему надо лечить апи, а не навешивать ещё одно кольцо костылей.
/full - вполне официальный метод, ограничения у него не описаны - значит, должен работать.

liosha
С причинами разобрались, а как быть то?

Я ж говорю, по-хорошему надо пинать админов со словами “чё за фигня, почему апи падает?!”

Пнул, вот ответ:

Да кто б сомневался, что это таймаут…
То есть, я так понимаю, чинить это они не собираются.

Ну может надо как то по особому пинать, я в английском не силён. Писал на webmaster@openstreetmap.org

Добавил возможность скачать большие релейшены по частям.
getbound теперь вынесен в самостоятельный проект: http://code.google.com/p/osm-getbound/