wowik, это забавно, но я думаю мы это решим. Если все маршруты будут в таком состоянии, это будет уже хорошо. Схлопнем, а для связности алгоритм сделает общие точки в местах геометрического пересечения маршрутов.
Zkir, есть основания полагать, что отношение type=restriction + restriction:hgv=only_right_turn конвертируется как запрет type=restriction + restriction=no___ .
RU-SPO 1.422
Нужно сделать так, чтобы отношения type=restriction + restriction:hgv/caravan/bus/agricultural/motorcycle/bicycle/hazmat=___ игнорировались. Ну или хотя чтобы игнорировались все type=restriction + restriction:= .
В свежей версии osm2mp ошибочные запреты в данном случае не генерируются.
Потестил обзорную карту Польши вроде жить можно, маршруты идут пока адекватно.
А можно её ещё и атласо образующей сделать(неудобно вспоминать в каком воеводстве нужен поиск)?
Наверное, всё-таки имеет смысл прописать какой-нибудь if, чтобы в будущем этой проблемы не возникало.
Вопрос: какой атрибут роутинговой линии в mp-файле конвертер принимает за будущее название линии в cgmap-файле?
Предыстория вопроса: изучая адреса, на которые была выдана ошибка “Улица не найдена” в валидаторе IL-GS-WB, я обнаружил, что как ошибочные показываются в том числе и адресные точки, включённые с ролью house в отношение type=associatedStreet, в котором в теге name:en прописано название, отличное от name:en, проставленного на линии улицы. Из-за отсутствия единых правил передачи названий с иврита на английский язык name:en для одной и той же улицы может быть записан множеством способов. Например, Hayarkon, Ha’yarkon, Hayarkon Street, Ha’yarkon Street, Hayarkon street, Ha’yarkon street, Rehov Hayarkon, Hayarkon Rehov, Rehov Ha’yarkon, Ha’yarkon Rehov - лишь некоторые из возможных латинских форм написания названия улицы. Часть линий улицы была включена в отношение type=associatedStreet с ролью street и можно было бы надеяться, что линиям будет присвоено название из отношения - в этом случае оно совпадало бы с названием на зданиях и ошибки бы не было (это позволило бы избавиться от ошибок хотя бы там, где привязка к улице осуществляется не через addr:street на каждом здании, а через отношение). Видимо, не так.
Тестирование: я попробовал запустить последнюю версию osm2mp с ключом target-lang en. Если на линии стоит name=English_name и эта линия включена в отношение type=street + name:en=name_in_English с ролью street, то она получает Label=English_name + StreetDesc=name_in_English. Этого недостаточно для нормальной работы адресации в СитиГИДе, т. к. за название линии в cgmap-файле принимается значение Label, а не StreetDesc?
Ты сперва скажи как ты ее запускаешь?
Я скачал с ее svn, а она мне говорит
Math::Polygon::Tree version 0.066 required–this is only version 0.065 at d:\OSM\bin/osm2mp.pl line 58.
Active Perl 5.14.2.1402
0.065 - последняя версия пакета, имеющаяся в наличии.
Для линий улиц конвертер берёт названия с самих линий, а для домиков с этой улицы (чтобы привязать домик к улице) берёт название из тегов релейшена. Вот так он чудно работает.
А вообще-то названия на линиях и в релейшене должны совпадать.
Удалил osm2mp, закачал заново через svn, получил ту же самую ошибку, поставил Math::Polygon::Tree 0.067 отсюда в папку …\Perl\site\lib\Math\Polygon - заработало.
Ежели StreetDesc на линиях берётся из отношения, может, если подкрутить что-нибудь, то и в Label начнёт записываться название из отношения?
Должны, но на практике такое не всегда выполняется, особенно когда вариантов написания уйма.
Последние карты, которые я выкачивал для ситигида имели баг с уровнями отображения. Все дороги, включая самые мелкие рисовались на всех масштабах. Сейчас это исправлено уже?