Zkir
Ясно, спасибо.
Ох. К сожалению в перле я тоже совсем никак, но возможно попробую покопаться, вряд ли там большой кусок кода надо поправить.
Zkir
Ясно, спасибо.
Ох. К сожалению в перле я тоже совсем никак, но возможно попробую покопаться, вряд ли там большой кусок кода надо поправить.
А что именно в ней нестабильного-то? Вроде везде работает
liosha
А все же вы не панируете починить этот как оказалось все таки баг?
А разве он есть в современных версиях?
Не, если верить этому, то как раз нет. У всех адресуемых объектов адрес правильный.
liosha
То есть:
Это правильно?
Да, правильно. В конфигах же ничего нет про то, что оно должно что-то создавать.
В каком месте эти associatedStreet есть, чтобы проверить ?
liosha
Это потому что Garmin?
Ну а в СитиГИД-е тогда оно почему не работает? И собственно чем здание полигон лучше здания точки в рамках адресной информации?
Это нужно спросить у составителей ситигидовских конфигов
ЗЫ
ЕМНИП в конвертации Беларуси когда-то такие точки прописывали, и всё работало.
liosha
Другими словами патчить надо не
http://peirce.gis-lab.info/misc/osm2mp_new.zip
а
https://github.com/Zkir/osm2dcm/tree/master/osm2dcm/osm2mp.config
?
Не, я могу отвечать только за современный конвертер. А в http://peirce.gis-lab.info/misc/osm2mp_new.zip достаточно древняя версия. Есть ли баг в ней, я лично не знаю.
Ясно, спасибо.
видимо тут:
#Address on address points
- condition:
- addr:housenumber = *
- building != *
- amenity != *
- shop != *
- office != *
- tourism != *
- craft != *
- only_node
action:
- action: write_poi
type: 0x6100
contacts: no
Последняя строка что значит ?
Судя по коду: “# contact information: address, phone” - то адрес именно там собирается, а без “contacts: yes” он туда не добирается. Но без отладчика это так, гадание на кодовой гуще
freeExec
Похоже дело не в этом. При наличии contacts: yes/no адрес точки записывается в MP файл если на ней есть тег addr:street. А вот на наличие associetedStreet он почему-то никак не влияет.
В общем я попробую поиграться с конфигом, если будет результат напишу.
Ох. Ну и непросто же копаться в коде на языке в котором ни бум-бум.
Так что не знаю даже то это или нет + нужно оттестировать, но вот выложу получившийся патч к конвертеру
http://peirce.gis-lab.info/misc/osm2mp_new.zip (кстати там версия 90b)
--- osm2mp_new.pl 2012-04-07 22:27:24.000000000 +0300
+++ osm2mp_new.pl.2 2013-01-21 17:46:56.409912875 +0200
@@ -2176,6 +2176,13 @@
$street .= qq{ ($suburb{$suburb}->{name})} if $suburb;
printf "StreetDesc=%s\n", convert_string( $street );
}
+ else {
+ my $poyid_temp = "node:" . $param{nodeid};
+ my $street_name = $street{$poyid_temp};
+ if ($street_name) {
+ printf "StreetDesc=%s\n", convert_string( $street_name );
+ }
+ }
printf "Zip=%s\n", convert_string($tag{'addr:postcode'}) if exists $tag{'addr:postcode'};
printf "Phone=%s\n", convert_string($tag{'phone'}) if exists $tag{'phone'};
Смысл патча:
Если POI (а как POI там в том числе и адресные точки) не имеет тега addr:street, но входит в relation street/associetedStreet с ролью house, то прописываем такой POI параметр StreetDesc значение которого берем из хэш таблицы отношений улиц.
Как доберусь домой оттестирую это получше.
PS Правда я хз StreetDesc это именно то что нужно или нет
Если ещё вакансии, я готов пройтись по германскому Бранденбургу.
Рискну предположить, что “Город” в Германии - это:
а) place=isolated_dwelling/hamlet/village/town/city (если попали в такой полигон - хорошо, дальше можно не смотреть)
б) de:place=isolated_dwelling/hamlet/village/town/city (если попали, “город” определён)
в) admin_level=8
Также прошу запустить проверку карт:
DE-BE (Germany, Berlin), IL-FULL (Израиль), IL-GS-WB (Израиль и Палестина), RS-FULL (Сербия), CZ-01 (Чехия, Прага).
Не надо ничего предпологать. Надо быть точно уверенным.
Я например уверен что в Германии вы не найдете ни одного полигона/мультиполигона place.
admin_level=8,9,10