OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#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,602

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: Як правильно вказувати адресу ?

подвійна-почетверна нумерація. у нас ще бувають будинки, на яких стоять таблички з усіх чотирьох сторін smile

Offline

#32 2012-09-17 15:30:35

dudka
Member
From: Київ
Registered: 2011-04-22
Posts: 1,602

Re: Як правильно вказувати адресу ?

Offline

#33 2012-09-17 15:50:17

Barbos
Member
From: Київ
Registered: 2011-01-08
Posts: 208

Re: Як правильно вказувати адресу ?

dimonster wrote:

До речі, треба також поправити конвертор, щоби він брав назви вулиць не з тегів релейшена вулиць, а з тегів вулиць-членів релейшена.

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

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 не поддерживает нашу схему адресации?
поиск улицы находит, а дома нет sad

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,863
Website

Re: Як правильно вказувати адресу ?

dimonster wrote:

Кстати, надо бы ради интересу попробовать этот Османд, пока у меня этот дурной нетбук (Toshiba AC-100) не забрали. Или пока я его об стенку не разбил:D

[offtop] Цікаво — нетбук на Андроїді, які враження? [/offtop]

Offline

#38 2012-09-22 09:11:51

dimonster
Member
Registered: 2012-07-08
Posts: 1,501

Re: Як правильно вказувати адресу ?

Погані враження sad
Уявіть, що "залізо" смартфона чи КПК встромили в корпус від нетбука. Замість тачскріну зробили маненьку клавіатуру, тачпад та мишу. Дзвонити з нього неможна, але є 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]

andygol wrote:

[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: 719

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. Ділянок вулиці в релейшені немає.

Потім почав шукати Карлсруе. Знайшов smile
Справді. Адресація задана релейшенами.
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: 719

Re: Як правильно вказувати адресу ?

dimonster wrote:

А підтримку має, в першу чергу у Номінатімі.

Поліз в Номінатім.
Шукаю "Харків, Єлізарова вулиця, 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 не хоче це робити sad
Хлопці, хтось розуміється на Perl? Бо хоч воно й опенсорс, але моїх знань вистачає лише на те, щоб відкрити osm2mp.pl у текстовому редакторі, пробігти очима та закрити sad
А інтуіції вистачило лише на те, щоб знайти шмат коду, який начебто відповідає за обробку релейшенів вулиць.

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: 719

Re: Як правильно вказувати адресу ?

dimonster wrote:

Отже, треба допилювати конвертор. Погано, що liosha не хоче це робити sad

        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 відношення співпадає з назвою вулиці українською мовою. А при створенні карти на інших мовах  виникає помилка.

Я би в лоб, не дивлячись сильно на код, написав би так:

Завтра спробую. Тільки спочатку знайду довідник з синтаксиса Перл.
Бо без довідника я якось розумію лише Бєйсік та Паскаль. big_smile А тут ситаксіс не дуже схожий на паскалевський. Скоріше на С++

Offline

#49 2012-09-23 22:35:22

_sev
Moderator
Registered: 2010-10-12
Posts: 719

Re: Як правильно вказувати адресу ?

dimonster wrote:

Угу, воно дивиться на теґ 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

Board footer

Powered by FluxBB