You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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: Як правильно вказувати адресу ?

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

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

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

Потім почав шукати Карлсруе. Знайшов 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: 721

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

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

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