You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#26 2012-09-17 12:25:30
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
Хлопці, є така проблема: При конвертації карти Харківської обл. під Навітел всі села та міста у районах виявилися неприв'язаними до своїх районів. Це погано. Бо, по-перше, при адресному пошуку незрозуміло, у якому районі знаходиться знайдене село. По-друге, що більш важливо, населені пункти у різних районах області, але з однаковою назвою (наприклад, Борова є у Зміївському р-ні та у Боровському р-ні) пропадають з адресного пошуку.
Я написав в темі про Навітел.
http://forum.openstreetmap.org/viewtopi … 20#p274920
Мені відповіли, що треба прописувати addr:district у точок та полігонів населених пунктів. В наших правилах адресації такого нема. До речі, згадуючи про "язикову війну" у Криму, якою мовою писати addr:district та як бути з багатомовністю. Чи може, попрохати liosha, щоби доробив конвертор osm2mp, щоби назви районів прописувалися автоматично?
Offline
#27 2012-09-17 12:29:28
- dudka
- Member
- From: Київ
- Registered: 2011-04-22
- Posts: 1,605
Re: Як правильно вказувати адресу ?
краще "попрохати liosha, щоби доробив конвертор osm2mp, щоби назви районів прописувалися автоматично"
якщо є знання і натхнення можна доробити самому і запропонувати автору osm2mp
http://osm2mp.googlecode.com/svn/trunk/
Offline
#28 2012-09-17 13:12:14
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
liosha не хоче доробляти або я неправильно пояснив йому суть питання. До речі, треба також поправити конвертор, щоби він брав назви вулиць не з тегів релейшена вулиць, а з тегів вулиць-членів релейшена.
За нашими правилами тег name релейшена співпадає з назвою вулиці. Але якщо хтось хоче зробите карту на іншій мові (наприклад, Fortress викладує карти України російською мовою), то інших name:xx для інших мов в тегах релейшена немає. І виникає помилка. В базі адресного пошуку замість однієї вулиці виникають дві вулиці (з російською та українською назвами), причому будинки прив'язані лише до української назви.
Offline
#29 2012-09-17 14:08:34
- Larry0ua
- Member
- Registered: 2010-09-19
- Posts: 1,061
Re: Як правильно вказувати адресу ?
якщо тут збираються проблеми osm2mp то також впишіть в фікси:
точки без тегу building з номером будинку, включені у відношення, не індексуються у пошук.
Offline
#30 2012-09-17 15:02:45
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
точки без тегу building з номером будинку, включені у відношення
Це ви так під'їзди у будинках позначати зібралися?
Offline
#31 2012-09-17 15:29:34
- Larry0ua
- Member
- Registered: 2010-09-19
- Posts: 1,061
Re: Як правильно вказувати адресу ?
подвійна-почетверна нумерація. у нас ще бувають будинки, на яких стоять таблички з усіх чотирьох сторін ![]()
Offline
#32 2012-09-17 15:30:35
- dudka
- Member
- From: Київ
- Registered: 2011-04-22
- Posts: 1,605
Re: Як правильно вказувати адресу ?
Offline
#33 2012-09-17 15:50:17
- Barbos
- Member
- From: Київ
- Registered: 2011-01-08
- Posts: 208
Re: Як правильно вказувати адресу ?
До речі, треба також поправити конвертор, щоби він брав назви вулиць не з тегів релейшена вулиць, а з тегів вулиць-членів релейшена.
а почему так? по моему удобнее держать названия улиц в релейшене, чем брать название из членов.. теги релейшена насколько я понимаю выше приоритет, и если случайно закрадется какая то ошибка в именах членов - то это нисколечки не повлияет на работоспособность...
Offline
#34 2012-09-17 16:37:38
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
по моему удобнее держать названия улиц в релейшене
может, и удобнее. Но при рендеринге карты на osm.org названия для подписывания улиц берутся не из релейшена, а из тегов отрезков улиц. Кроме того, как я понял, конвертор osm2mp для подписей улиц берёт теги отрезков улиц. Так что если названия улиц хранить только в релейшене, то мы не увидим названий улиц ни в карте на osm.org, ни в навигаторе.
Так что либо дублирование информации в тегах, либо просим переделать конвертор.
Offline
#35 2012-09-21 19:50:26
- tyua
- Member
- From: Kiev
- Registered: 2011-05-03
- Posts: 28
Re: Як правильно вказувати адресу ?
кто знает, подскажите, osmand не поддерживает нашу схему адресации?
поиск улицы находит, а дома нет ![]()
Offline
#36 2012-09-21 21:55:57
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
кто знает, подскажите, osmand не поддерживает нашу схему адресации?
поиск улицы находит, а дома нет
Возможно не поддерживает. Скорее всего, не сам Османд, а конвертер.
Кстати, надо бы ради интересу попробовать этот Османд, пока у меня этот дурной нетбук (Toshiba AC-100) не забрали. Или пока я его об стенку не разбил:D
Offline
#37 2012-09-22 07:37:09
- andygol
- Moderator
- From: Дніпро
- Registered: 2009-07-31
- Posts: 1,968
- Website
Re: Як правильно вказувати адресу ?
Кстати, надо бы ради интересу попробовать этот Османд, пока у меня этот дурной нетбук (Toshiba AC-100) не забрали. Или пока я его об стенку не разбил:D
[offtop] Цікаво — нетбук на Андроїді, які враження? [/offtop]
Offline
#38 2012-09-22 09:11:51
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
Погані враження ![]()
Уявіть, що "залізо" смартфона чи КПК встромили в корпус від нетбука. Замість тачскріну зробили маненьку клавіатуру, тачпад та мишу. Дзвонити з нього неможна, але є Wi-Fi (нажаль, без режиму Ad-Hoc, тож без Wi-Fi роутера чи точки доступу не працює). Нема Ethernet. Блютузу нема або не працює. GPS нема. Є HDMI, але нема VGA, тож до проектора не підключити. Вібро нема, акселерометра нема. Є флеш-вінчестер на 5 чи 8 ГБ та дірка для SD-карти. Ще можна вставити USB-флеш, але тоді будеш без USB-мишки чухати пальцем тачпад, бо дірка USB лише одна. Однак, є порт mini-USB. Можна підключити це гімно до нормального компа та перепрошити чи скопіювати якісь файли.
А ще іноді ця гидота може зависнути.
Запустив CityGuide7, але не зміг запустити Navitel (ні 3, ані 5 версію). Запустив quake3, але миша там якось дивно працює. Незручно або треба щось налагоджувати.
На мою думку, воно годиться лише для забавок: іграшки, сьорфінг по інтернету, музончик, фільми.
Ось тут багато розписано про цю іграшку http://4pda.ru/forum/index.php?showtopic=198800
Offline
#39 2012-09-22 10:49:47
- Lindroid
- Member

- From: Ukraine, Poltava
- Registered: 2011-04-18
- Posts: 331
- Website
Re: Як правильно вказувати адресу ?
[offtop]
[offtop] Цікаво — нетбук на Андроїді, які враження? [/offtop]
У мене теж майже-андроід-нетбук.
Точніше андроід-планшет, який переводиться в ноутбучний режим: Eee Pad Transformer Prime TF201. ASUS до нього навіть безкоштовно прислала GPS-модуль.
Враження вцілому позитивні, все-таки робота з клавіатурою набагато продуктивніша за пальцетикання.
Але у андроіда своя специфіка - програми заточені під мобільне використання і саме під палець. Не уявляю, як можна організувати повноцінну розробку чого б то не було, обмежуючись самою лише платформою Android, навіть з клавіатурою. Сама ОС з користувацькою ідеологією.
[/offtop]
OpenStreetMap isn't a computer project, it's an outdoors activity.
Less of the bulk imports and wikifiddling please. Go outside and map!
Offline
#40 2012-09-22 19:13:56
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
[offtop] Це коли в нетбука є нормальна клавіатура. А в цьому недоробку клавіши під Німеччину зроблені. Я встановив AnySoftKeyboard, але не знайшов підходящої розкладки під російську та українську мови. Деякі букви не на своїх місцях. І коли воно все працює і не висне. І коли в нього є багато різних інтерфейсів вводу/виводу, а не один порт USB.
Ось у моєму ноуті є повноцінний WiFi, Bluetooth, 4 USB 2.0, DVD-RW, Ethernet, modem, VGA-port, com-port, IEE1394, IR-port, вихід для навушників, вхід для мікрофона (може працювати ще й як лінійний вхід), вбудований мікрофон, PCMCIA slot, ExpressCard slot. Та навіть слот для карток iso-7816. Нажаль, веб-камери нема.
[offtop]
І, повертаючись до основної теми, хочу запитати: хто придумав систему адресації з релейшенами? І чому вона не має серйозної підтримки в усіх "механізмах" OSM?
Offline
#41 2012-09-22 20:24:09
- _sev
- Moderator
- Registered: 2010-10-12
- Posts: 721
Re: Як правильно вказувати адресу ?
Придумали її у Німеччині, вперше для містечка Карлсруе. А підтримку має, в першу чергу у Номінатімі. Може не має у чиїхось самописних валідаторах, бо люди може лінуються додати підтримку, і то треба їх заохочувати доробити їхні інструменти.
Offline
#42 2012-09-22 21:07:37
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
Гм. Поліз я у Німеччину...
Спочатку Берлін.
Намальовано будинок (building=yes), всередині нього точка без тегу building, але прописані теги
addr:city=Berlin
addr:country=DE
addr:housenumber=2
addr:postcode=10707
addr:street=Xantener Straße
building=yes
На іншій вулиці адресу вже вказано на будинку
addr:city=Berlin
addr:country=DE
addr:housenumber=33
addr:postcode=10707
addr:street=Brandenburgische Straße
building=yes
Дивлюся у бічну панель ДЖОСМу, бачу три релейшени вулиць. Відкриваю. Бачу
name Große Diesdorfer Straße
type associatedStreet
в релейшені три будиночки з роллю house. Ділянок вулиці в релейшені немає.
Потім почав шукати Карлсруе. Знайшов ![]()
Справді. Адресація задана релейшенами.
name Brauerstraße
type street
Члени релейшена
street - відрізки вулиці (причому розташовані послідовно (!) )
house - будиночки.
Однак чомусь на будиночках все одно проставлені теги
addr:city=Karlsruhe
addr:country=DE
addr:housenumber=3a
addr:street=Brauerstraße
building=yes
Offline
#43 2012-09-22 22:06:46
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
А підтримку має, в першу чергу у Номінатімі.
Поліз в Номінатім.
Шукаю "Харків, Єлізарова вулиця, 6" - знаходить лише вулицю. Вказую російською мовою - те ж саме.
Шукаю "Харків, Єлізарова вулиця, 4" - знаходить. Вказую російською мовою - теж знаходить.
Але чомусь вказано район Залютино. Хоча ці будинки на Холодній Горі.
Запускаю ДЖОСМ, дивлюся. На №4 вказано addr:street. На №6 вказано лише номер будинку.
Обидва будинки включено до релейшену.
Потім я згадав про проблеми з містом Борова. У Харківській обл. є дві Борові (в Зміївському та Борівському р-ні). Тож у Навітелі були проблеми з пошуком.
Шукаю "Борова, Гагаріна вулиця, 25". Номінатім швиденько знаходить.
Шукаю "Боровая, Гагарина улица, 23". Теж знаходить.
Відкриваю ДЖОСМ, дивлюся. На будинку лише номер та building=house, адресація задана релейшеном. В тегах релейшена лише українська назва в name, відрізки вулиці мають назви українською та російською мовами.
На межі міста Борова лише теги place=town та name, name:ru. На точці міста теж ніяких addr:district, addr:country, та ін.
Але Номінатім все це сприйняв! Причому правильно. Не переплутав райони!
Але чому в Харкові йому знадобився тег addr:street?
Не розумію. Піду спати.
Offline
#44 2012-09-23 09:16:39
- _sev
- Moderator
- Registered: 2010-10-12
- Posts: 721
Re: Як правильно вказувати адресу ?
А підтримку має, в першу чергу у Номінатімі.
Поліз в Номінатім.
Шукаю "Харків, Єлізарова вулиця, 6" - знаходить лише вулицю. Вказую російською мовою - те ж саме.
Шукаю "Харків, Єлізарова вулиця, 4" - знаходить. Вказую російською мовою - теж знаходить.
Але чомусь вказано район Залютино. Хоча ці будинки на Холодній Горі.
Друже, тому, що Номінатім відстає, а ти додав ті будинки 5-го вересня. Спробуй пошукати інші будинки, 37, 26 і таке інше. Тобто, одноповерхові, рілейшени для яких я зробив 2-го вересня
Район вказано невірно тому, що ніхто не намалював полігон для Холодної гори – звідки ж йому знати?
Offline
#45 2012-09-23 16:15:56
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
Он воно шо!
Спробував. Працює.
Отже, треба допилювати конвертор. Погано, що liosha не хоче це робити ![]()
Хлопці, хтось розуміється на Perl? Бо хоч воно й опенсорс, але моїх знань вистачає лише на те, щоб відкрити osm2mp.pl у текстовому редакторі, пробігти очима та закрити ![]()
А інтуіції вистачило лише на те, щоб знайти шмат коду, який начебто відповідає за обробку релейшенів вулиць.
if ( $flags->{street_relations} ) {
for my $type ( qw{ street associatedStreet } ) {
my $list = $relations->{$type};
next if !$list;
while ( my ($relation_id, $members) = each %$list ) {
my $street_name = name_from_list( 'street', $reltag->{$relation_id} );
next if !$street_name;
for my $member ( @$members ) {
next if !( $member->{role} ~~ [ 'house', 'address' ] );
$street{"$member->{type}:$member->{ref}"} = $street_name;
}
}
}
printf STDERR " %d houses with associated street\n", scalar keys %street;
}Offline
#46 2012-09-23 17:14:09
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
[offtop]
Щодо нетбука toshiba AC100 : я зробив "reset to factory defaults". Не допомогло. Все одно час від часу нетбук зависав. Тоді я відформатував розділ з юpерськими даними (при перепрошиванні його не чіпали) та скопіював все те "добро" назад, стало краще. Тепер вже не висне vplayer через 10 хвилин після запуску, і поки що немає спорадичних зависонів без причин.
Проблему з клавіатурою майже подолано: поставив Multiplay IME keyboard (довелося власноруч переробити турецьку розкладку на українську), але перестали працювати комбінації Ctrl+C, Ctrl+V, Ctrl+A. Але можна й без них. [/offtop]
Offline
#47 2012-09-23 20:13:48
- _sev
- Moderator
- Registered: 2010-10-12
- Posts: 721
Re: Як правильно вказувати адресу ?
Отже, треба допилювати конвертор. Погано, що liosha не хоче це робити
while ( my ($relation_id, $members) = each %$list ) { my $street_name = name_from_list( 'street', $reltag->{$relation_id} ); next if !$street_name; ...
Угу, воно дивиться на теґ street у відношенні. Ясно, чому не працює.
Я би в лоб, не дивлячись сильно на код, написав би так:
while ( my ($relation_id, $members) = each %$list ) {
my $street_member = first { $_->{type} eq 'way' && $_->{role} eq 'street' } @$members;
next if !$street_member;
$street_name = name_from_list( 'name', $waytag->{$street_member} );
next if !$street_name;Спробуй.
Offline
#48 2012-09-23 21:08:41
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
Угу, воно дивиться на теґ street у відношенні.
Так, воно бере тег name з відношення. В нас name відношення співпадає з назвою вулиці українською мовою. А при створенні карти на інших мовах виникає помилка.
Я би в лоб, не дивлячись сильно на код, написав би так:
Завтра спробую. Тільки спочатку знайду довідник з синтаксиса Перл.
Бо без довідника я якось розумію лише Бєйсік та Паскаль.
А тут ситаксіс не дуже схожий на паскалевський. Скоріше на С++
Offline
#49 2012-09-23 22:35:22
- _sev
- Moderator
- Registered: 2010-10-12
- Posts: 721
Re: Як правильно вказувати адресу ?
Угу, воно дивиться на теґ street у відношенні.
Так, воно бере тег name з відношення. В нас name відношення співпадає з назвою вулиці українською мовою. А при створенні карти на інших мовах виникає помилка.
Ні, по коду воно бере власне с теґа street, а не name. Тому більшість відношень і пропускаються.
Offline
#50 2012-09-26 07:50:42
- dimonster
- Member
- Registered: 2012-07-08
- Posts: 1,501
Re: Як правильно вказувати адресу ?
Спробував. Воно матюкається на $street_name
Я подивився на оригінальний код, інтуітивно дописав my перед $street_name у рядку
my $street_name = name_from_list( 'name', $waytag->{$street_member} );Запустилося. Зараз чекаю на результат.
Результат поки невтішний. Я вказав брати назви з name:ru, name
perl osm2mp_sev.pl --config=cfg\navitel-ru.cfg --full-karlsruhe --navitel --bpoly OSM_UA_KHR.poly --namelist label=name:ru,name --namelist place=name:ru,name --namelist street=name:ru,name --defaultcountry="Ukraine" --defaultregion="Kharkivska obl." --codepage=utf8 --output=UA-KHR-ru.mp UA-KHR.osmВоно видало "0 houses with associated street". Відкриваю Харків, дивлюся: там, де будинки не мають addr:street, замість назви вулиці прописано "Харьков". А там, де addr:street задано, воно вписало назву вулиці "Єлізарова вулиця"з addr:street. Хоча в параметрах задано брати назву з name:ru.
Last edited by dimonster (2012-09-26 08:18:16)
Offline