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.***

#1 2014-10-14 01:45:46

UkrainianZombie
Member
Registered: 2014-09-03
Posts: 258

Скрипт для адміністративних кордонів

Привіт. У нас в Україні існує проблема із адміністративними кордонами усіх рівнів, навіть із обласними - далеко не завжди на лініях адмін. зв'язків стоять теґи із рівнем кордону.

Хтось може написати коротенький скрипт, який би пройшовся по всіх веях зв'язків type=boundary, boundary=administrative? Треба на самі лінії проставити теґи boundary=administrative та admin_level=N, де N - найстарший (найменше число) серед усіх адміністративних рівнів цього вею.

Якщо чесно, давно вже час виправити цей безлад, а вручну дуже довго та постійно вилазять помилки
x2VmfGF.png

Offline

#2 2014-10-14 07:39:41

Lindroid
Member
From: Ukraine, Poltava
Registered: 2011-04-18
Posts: 331
Website

Re: Скрипт для адміністративних кордонів

UkrainianZombie wrote:

Треба на самі лінії проставити теґи boundary=administrative та admin_level=N, де N - найстарший (найменше число) серед усіх адміністративних рівнів цього вею.

А де прописана така вимога? Маємо ж такий інструмент як відношення - чим він не влаштовує?

The boundary=administrative tag is used on ways Way. It may also (or instead) be used on a relation grouping several ways.

Написано тут: Tag:boundary=administrative.


OpenStreetMap isn't a computer project, it's an outdoors activity.
Less of the bulk imports and wikifiddling please. Go outside and map!

Offline

#3 2014-10-14 11:54:42

Eugene Ghostishev
Member
From: Кро / Львів
Registered: 2012-12-19
Posts: 32

Re: Скрипт для адміністративних кордонів

як мінімум, під мапою є ось такий надпис:
Limitations
This map does not yet show information coded using relations.

тобто, на мою думку, дублювання тегів відношення на лініях буде більш схоже на костиль, аніж необхідність.

Offline

#4 2014-10-14 13:03:46

olehz
Member
From: Lviv
Registered: 2011-08-11
Posts: 731
Website

Re: Скрипт для адміністративних кордонів

Я також не підтримую ідею дублювання тегів на лініях. У нас з кордонами все більш-менш нормально:

2-4-5.png
2-4-6.png
2-4-7.png
2-4-8.png
2-4-9.png

Offline

#5 2014-10-14 16:25:15

UkrainianZombie
Member
Registered: 2014-09-03
Posts: 258

Re: Скрипт для адміністративних кордонів

Мені чомусь здалося, що так має бути, бо про це в нас вже йшла мова. Окрім того, я просто подивився, як роблять в інших країнах. Плюс, плагін Relation Toolbox пропонує дублювання теґів для адмін. кордонів за замовчанням. А ще тому, що в нас в теґах цих веїв повний безлад - хтось дублює, хтось ні.

Offline

#6 2014-10-14 17:03:20

uname
Member
Registered: 2014-08-11
Posts: 213

Re: Скрипт для адміністративних кордонів

UkrainianZombie wrote:

Мені чомусь здалося, що так має бути, бо про це в нас вже йшла мова. Окрім того, я просто подивився, як роблять в інших країнах. Плюс, плагін Relation Toolbox пропонує дублювання теґів для адмін. кордонів за замовчанням. А ще тому, що в нас в теґах цих веїв повний безлад - хтось дублює, хтось ні.

поддерживаю топикстартера! об дублировании тегов на линии для адм. границ даже в вики предельно ясно написано! только со скриптами аккуратно - в дон.обл. без скриптов сделано аккуратно все.

http://wiki.openstreetmap.org/wiki/Relation:boundary

Boundary ways should have boundary=administrative and the admin_level=* for the highest border (when a country, state, county are on the same way the admin_level would be 2). source=* is always recommended.
Because boundaries can be rendered both from relations and individual ways, tagging the ways is, in the strictest sense optional. However this causes render issues (see this Github discussion for the details: basically overlapping relations are causing ways to render differently for no clear reason because the dashing will not overlap perfectly) and ways in the database that had no tags of their own, which is undesirable.

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

Last edited by uname (2014-10-14 17:11:17)

Offline

#7 2014-10-14 19:11:04

olehz
Member
From: Lviv
Registered: 2011-08-11
Posts: 731
Website

Re: Скрипт для адміністративних кордонів

uname wrote:

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

Если есть отношение, часть мемберов которого обрезаны - ты все равно можешь запросто узнать admin_level оставшихся way-ев. Другое дело, если парсер вообще не умеет работать с отношениями, но под парсеры/рендеры мапить какбы не правильно, тем более такие ущербные (которые только way понимают). Тут вики править надо, а не границы. Если покрыть всю Украину мозаикой сельрад и каждый НП обвести admin_level-ом 9 - получим около 50 тысяч полигонов, а следовательно сотни тысяч веев.

Offline

#8 2014-10-14 19:54:14

UkrainianZombie
Member
Registered: 2014-09-03
Posts: 258

Re: Скрипт для адміністративних кордонів

olehz wrote:

Если покрыть всю Украину мозаикой сельрад и каждый НП обвести admin_level-ом 9 - получим около 50 тысяч полигонов, а следовательно сотни тысяч веев.

Ніби це погано smile

А взагалі-то все одно - дублювати чи ні. Головне один раз визначитися, прописати таке правило у вікі і робити завжди однаково. Ordnung muss sein.
Я за те, щоб дублювати.

Offline

#9 2014-10-14 20:06:07

Lindroid
Member
From: Ukraine, Poltava
Registered: 2011-04-18
Posts: 331
Website

Re: Скрипт для адміністративних кордонів

Так проблема в тому, що реалізувати повноцінне дублювання неможливо. Тільки часткове. В силу того, що одна й та ж лінія входить у різні адмінкордони, з різними рівнями і назвами.
Писати все через крапко-кому, як заведено в OSM?
admin_level=8;9 (умовно, для прикладу)
name=Кременчуцька міська рада;Кременчуцький район

А що як лінія входить ще в треті-четверті відношення, не адмінкордони? Теж все на лінію чіпляти?
Це прямий шлях до тегозвалища, яке ніякі рендери не розберуть.
Відношення усе красиво вирішують. Через них ми можемо отримати усю необхідну інформацію. Отримана інформація буде структурованою, однозначною, несуперечливою. Отримана з веїв інформація такою не буде.


OpenStreetMap isn't a computer project, it's an outdoors activity.
Less of the bulk imports and wikifiddling please. Go outside and map!

Offline

#10 2014-10-14 20:11:10

andygol
Moderator
From: Дніпро
Registered: 2009-07-31
Posts: 1,968
Website

Re: Скрипт для адміністративних кордонів

Переклав http://wiki.openstreetmap.org/wiki/Uk:Relation:boundary — читайте (якщо будуть помилки – скажіть або виправте)

Offline

#11 2014-10-14 20:50:37

UkrainianZombie
Member
Registered: 2014-09-03
Posts: 258

Re: Скрипт для адміністративних кордонів

andygol wrote:

Переклав http://wiki.openstreetmap.org/wiki/Uk:Relation:boundary — читайте (якщо будуть помилки – скажіть або виправте)

Ну це саме те, про що і йде мова. Дуже вам дякую!


Lindroid wrote:

Так проблема в тому, що реалізувати повноцінне дублювання неможливо. Тільки часткове. В силу того, що одна й та ж лінія входить у різні адмінкордони, з різними рівнями і назвами.
Писати все через крапко-кому, як заведено в OSM?
admin_level=8;9 (умовно, для прикладу)
name=Кременчуцька міська рада;Кременчуцький район

В тому то й справа, що для лінії адмінкордону не потрібна назва. Потрібні тільки 2 теґи - boundary=administrative та admin_level=*. А в admin_level прописується найстарше значення.

Lindroid wrote:

А що як лінія входить ще в треті-четверті відношення, не адмінкордони? Теж все на лінію чіпляти? Відношення усе красиво вирішують.

Відношення ніхто не відкидає, звичайно. Просто лінії потребують уточнень. Якщо дублювати, то ось такі теґи має, наприклад, кордон по річці:
89TLshD.png

Last edited by UkrainianZombie (2014-10-14 20:52:29)

Offline

#12 2014-10-14 21:07:07

Lindroid
Member
From: Ukraine, Poltava
Registered: 2011-04-18
Posts: 331
Website

Re: Скрипт для адміністративних кордонів

Добре, давайте по простому, в кількох словах.
Будь-яка дія робиться ж не просто так, а з певною метою, вирішує якусь конкретну практичну проблему, і при цьому бажано щоб вона не створювала нових проблем. Інакше смисл дії сумнівний.
Так от, нинішня ситуація з відношеннями мені бачиться взагалі безпроблемною. Цілком припускаю, що, імовірно, я вузько мислю чи коло моїх вимог до OSM не таке широке як у інших користувачів, але все необхідне я через відношення отримую, і отримую якісно smile
Тому прошу розтлумачити: от ця конкретна дія з переносом тега на лінію - вона дійсно комусь здатна полегшити життя, вирішити якусь практично існуючу проблему?
Якщо це так - можна лише вітати. Тим більше коли відношення зберігаються, то я як і раніше, продовжую їх використовувати, і мені повинно бути байдуже smile
А якщо ні - то навіщо плодити сутності?


OpenStreetMap isn't a computer project, it's an outdoors activity.
Less of the bulk imports and wikifiddling please. Go outside and map!

Offline

#13 2014-10-14 21:52:49

olehz
Member
From: Lviv
Registered: 2011-08-11
Posts: 731
Website

Re: Скрипт для адміністративних кордонів

Пропоноване тегування - це анохронізм так само як is_in, place_name, de_place і т.п. Аргументів в користь використання цих тегів ви так і не навели. Якщо вже і писати скрипти для масового корегування, то для очистки від надлишкового сміття, а не навпаки

Offline

#14 2014-10-14 23:15:08

UkrainianZombie
Member
Registered: 2014-09-03
Posts: 258

Re: Скрипт для адміністративних кордонів

olehz wrote:

Пропоноване тегування - це анохронізм так само як is_in, place_name, de_place і т.п. Аргументів в користь використання цих тегів ви так і не навели. Якщо вже і писати скрипти для масового корегування, то для очистки від надлишкового сміття, а не навпаки

Я наводив аргументи, чому я підняв це питання - вище по темі гляньте. Достатньо навіть того, що кожна лінія зроблена аби як без стандартизації.

Але, як я вже казав, це навіть другорядне питання, зараз треба визначитися із способом редагування в цілому. Якщо дублювання - це анахронізм, то тоді треба видаляти всі дублі. Он вище я навів приклад річки, в якій із зв'язку дубльовано назву, тип, waterway та вікіпедію. Якщо їх прибрати, то річка в джосмі вже виглядає не синьою, а звичайною сірою лінією. Можливо, рендер взагалі не зможе розпізнати таку річку, я не пробував. Вас таке влаштовує?

Last edited by UkrainianZombie (2014-10-14 23:26:40)

Offline

#15 2014-10-15 08:22:47

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

Re: Скрипт для адміністративних кордонів

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

Lindroid wrote:

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

Я бачу тільки одну проблему - користувачі iD і Potlach видаляють лінії кордонів, оскільки в цих редакторах ці лінії не відображаються як кордони.
Кілька разів на місяць відбувається таке. Виправити недоліки iD і Potlach неможливо, а дублювання вирішило б цю існуючу проблему.

Можна сприймати звязки адмінодиниць(наприклад полігонів place=state) як об'єднання ліній кордонів(наприклад ліній admin_level=4), а не просто абстрактних нетегованих ліній.

Last edited by dudka (2014-10-15 08:23:29)

Offline

Board footer

Powered by FluxBB