OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

Announcement

A fix has been applied to the login system for the forums - if you have trouble logging in please contact support@openstreetmap.org with both your forum username and your OpenStreetMap username so we can make sure your accounts are properly linked.

#1 2015-11-22 13:05:45

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Перейменування вулиць

У нас активно законодавчо змінюються назви вулиць, і при кількості перейменованих від двох десятків починаючи, ручне перейменування може зайняти досить багато часу. Пропоную тул, що в цьому допоможе: https://github.com/Larry0ua/ua-convert/ … ameStreets

Як користуватись:
- заповнити файл replacements.txt за шаблоном (tab separated, можна відкрити у excel і зберегти потім у Unicode text. Перша колонка в файлі - регекспи, тобто можна писати повну назву, можна і частину назви, але щоб вона не співпала з іншими вулицями)
- поставити Groovy (Windows: http://www.groovy-lang.org/install.html … n_windows) та Java, якщо нема
- скачати чи вирізати з дампа місто, зберегти в osm
- всі файли покласти в одну папку - скрипт, файл перейменувань і дамп міста
- поміняти в скрипті імена файлів, запустити. На цьому етапі кажуть, що краще запускати з консолі стрічкою

"C:\Program Files (x86)\Groovy\Groovy-2.4.5\bin\groovy" RenameStreets.groovy -e UTF-8 > log.txt

- отриманий файл відкрити джосмом, перевірити, чи не зачеплено нічого зайвого, залити

По файлу замін - треба бути обережним, щоб правила не перекривались для вулиць, провулків з номерами і т.д. була однозначна відповідність.
Якщо якихось вулиць є кілька по різних районах, такі вулиці перейменовуються ЛИШЕ вручну!

Скрипт переписує всі name в old_name (name:xx також) на вулицях і адресних відношеннях і заповнює name, name:uk. Також заміняє addr:steet.

Будь-ласка, при використанні будьте уважні, щоб не зачепити сусідні міста та інші об'єкти. Ну і звичайно не робіть перейменувань поки нема документального підтвердження про перейменування (а то й пізніше, коли нові назви почнуть використовуватись)

Last edited by Larry0ua (2016-02-01 15:03:05)

Offline

#2 2015-11-27 16:42:31

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

Re: Перейменування вулиць

Вхідний файл з osm-даними можна отримати overpass-запитом
http://overpass-turbo.eu/s/cY6

Offline

#3 2015-11-30 10:45:47

Eugene Schava
Member
Registered: 2015-08-31
Posts: 10

Re: Перейменування вулиць

Имеются ли какие-то средства, для того чтобы указать дату, когда старое значение перестало быть актуальным?

Частично скопирую свой пост из другого треда (OSMAnd):

Возможно ли реализовать режим, чтобы были видны одновременно и новые названия и старые (например в скобочках)?
Сразу возникает вопрос как отделить новые переименования от исторических (например в каких-то случаях old_name имеет название которое уже неактуально)
Хотелось бы иметь дату переименования и использовать такой режим только для новых переименований (например меньше трех лет)
Вики предлагает следующий подход:
Key variants can be suffixed with language code (such as "name:en") and date namespace suffix (such as "old_name:en:1921-1932").
Однако я не уверен, что все будут придерживаться этого принципа

Offline

#4 2015-12-01 13:02:50

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

Eugene Schava wrote:

Имеются ли какие-то средства, для того чтобы указать дату, когда старое значение перестало быть актуальным?

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

Offline

#5 2015-12-01 13:17:27

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,688

Re: Перейменування вулиць

Новые названия не все люди сразу выучат, все документы поменяют, адреса всех знакомых уточнят. Посему старое название будет востребовано.

Ставьте дату
name:-2015=xxx конечно весьма прикольно выглядит.
Я бы предпочел old_name=xxx (как более общепринятый) + что-нибудь типа old_name:date=2015, но ведь вики другое советует...
Главное, чтобы однообразно, потом можно будет как-то и использовать, например добавлять в скобках.
http://wiki.openstreetmap.org/wiki/Date_namespace

Last edited by wowik (2015-12-01 13:18:44)

Offline

#6 2015-12-01 13:38:04

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

wowik wrote:

name:-2015=xxx конечно весьма прикольно выглядит

во-первых, у улицы есть дата создания и присвоения ей официального имени
во-вторых, старых названий часто несколько. и не всегда они различны
к примеру, 50 улицам из 173 переименованных в Харькове просто вернули старые названия
http://www.city.kharkov.ua/ru/document/ … 47404.html
получается, для них корректно надо записывать как-то так:
name:Воскресенська вулиця
old_name:1923-2015=Урицького вулиця
old_name:1804-1923=Воскресенська вулиця
есть улицы с ещё более насыщенной историей переименований
можно, конечно, со всем этим разобраться и внести в базу
но мне кажется что в этом нет смысла - как для редакторов, так и для пользователей
внесения old_name вполне достаточно, и то для потребителей это будет иметь ценность только в переходной период

Last edited by Vort (2015-12-01 13:40:45)

Offline

#7 2015-12-01 13:47:35

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

ещё из весёлостей переименования
улицу Спартака переименовали в улицу Спартака
именно так. пишется одинаково. только смысл разный smile

Offline

#8 2015-12-01 13:53:57

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,688

Re: Перейменування вулиць

Vort wrote:

внесения old_name вполне достаточно

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

Воскресенская улица (бывш. Урицкого)
улица Спартака (бывш. Спартака)

Кстати, пойду подумаю как прилепить визуализацию предыдущего имени...
Уже есть обработанные НП для тренировки?

Last edited by wowik (2015-12-01 13:57:02)

Offline

#9 2015-12-01 13:59:32

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

wowik wrote:
Vort wrote:

внесения old_name вполне достаточно

сомневаюсь.
там могут быть слишком старые, которые точно нынче не нужны, а вот последние переименования точно нужны.

значит нужно заменять старый old_name на новый old_name
глуповато звучит, но мне кажется что это достаточно адекватно

Offline

#10 2015-12-01 14:03:23

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

Re: Перейменування вулиць

wowik wrote:

Ставьте дату
name:-2015=xxx конечно весьма прикольно выглядит

Вы забываете, что геометрия улиц меняется со временем. Например две улицы могут объеденить в одну или наоборот разъеденить (продолжить, застроить и т.д.). Точно также с домами. Согласен с Vort, что таким данным не место в OSM, а то при желании можно дойти до такого:

old_name:-320000000--260000000=океан Палеотетіс
old_name:-260000000--65000000=океан Тетіс
...

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

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

Last edited by olehz (2015-12-01 14:10:29)

Offline

#11 2015-12-01 14:03:58

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

wowik wrote:

Кстати, пойду подумаю как прилепить визуализацию предыдущего имени...

для этого, кстати, по принципу "any tags you like" можно запросто подобавлять улицам что-то типа ua_rename_2015=yes

Offline

#12 2015-12-01 14:12:25

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,688

Re: Перейменування вулиць

Vort wrote:

значит нужно заменять старый old_name на новый old_name
глуповато звучит, но мне кажется что это достаточно адекватно

Да, но как узнать, что он обновился в 2015?

Last edited by wowik (2015-12-01 14:24:36)

Offline

#13 2015-12-01 14:15:01

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,688

Re: Перейменування вулиць

Vort wrote:

ua_rename_2015=yes

Ну я и писал, что, что что-то типа  date:old_name или old_name:date=2015 и т.п. было бы понятнее
Есть же population:date - сделать по анологии

Last edited by wowik (2015-12-01 14:15:51)

Offline

#14 2015-12-01 14:15:14

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

olehz wrote:

Вы забываете, что геометрия улиц меняется со временем. Например две улицы могут объеденить в одну или наоборот разъеденить (продолжить, застроить и т.д.).

согласен, это тоже надо иметь в виду
на примере того же Харькова такая ситуация с улицей Фрунзе:
у новосозданной улицы Кирпичёва получается два "предка"

Offline

#15 2015-12-01 14:18:05

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

wowik wrote:
Vort wrote:

ua_rename_2015=yes

Ну я и писал, что, что что-то типа  date:old_name или old_name:date=2015 и т.п. было бы понятнее
Есть же population:date - сделать по анологии

с таким вариантом будет высокий риск рассинхронизации
поменяют имя, не поменяют дату. или поменяют дату, но не поменяют имя

Offline

#16 2015-12-01 14:20:31

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,688

Re: Перейменування вулиць

Vort wrote:

поменяют имя, не поменяют дату. или поменяют дату, но не поменяют имя

с population'ом так и бывает.

Last edited by wowik (2015-12-01 14:20:47)

Offline

#17 2015-12-01 14:23:02

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

придумался мне гибридный вариант
совместимый, но с дублированием:

name = Воскресенська вулиця
name:2015- = Воскресенська вулиця
old_name = Урицького вулиця
old_name:1923-2015 = Урицького вулиця
old_name:1804-1923 = Воскресенська вулиця

правда, хаоса тут наведут со временем...
а если учесть ещё языковые приставки (, :uk, :ru, :en), вобще монстр получается

Last edited by Vort (2015-12-01 14:25:02)

Offline

#18 2015-12-01 14:29:00

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,688

Re: Перейменування вулиць

olehz wrote:

Вы забываете, что геометрия улиц меняется со временем. Например две улицы могут объеденить в одну или наоборот разъеденить (продолжить, застроить и т.д.).

Это уже второго яаления порядка точности.

Зачем еще нужен old_name. Чтобы назад не возвращали по недоразумению.
Увидят новое имя, а подумают, что оно по ошибке тут случилось, и "исправят"

Last edited by wowik (2015-12-01 14:29:27)

Offline

#19 2015-12-01 15:05:35

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,688

Re: Перейменування вулиць

В голом виде old_name пока плох. Правда стали видны застарелые ошибки.

http://wowik.000space.com/places/ua/$1503.htm
http://wowik.000space.com/places/ua/$1468.htm
http://wowik.000space.com/places/ua/$1559.htm

Offline

#20 2015-12-01 15:05:42

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

чуть переделал и расширил последний вариант:


name = Воскресенська вулиця                (основное отображение, актуальное состояние)
name:uk = Воскресенська вулиця           (дубль для верификации языка name тега)
name:ru = Воскресенская улица
name:en = Voskresenska Street

old_name = Урицького вулиця                (альтернативное отображение, для поиска, актуальное состояние предыдущего имени)
old_name:uk = Урицького вулиця
old_name:ru = Урицкого улица
old_name:en = Urytskoho Street

name:uk:2015- = Воскресенська вулиця      (для поиска и верификации, полу-архивные данные)
name:ru:2015- = Воскресенская улица
name:en:2015- = Voskresenska Street
name:uk:1923-2015 = Урицького вулиця     (для поиска, архивные данные)
name:ru:1923-2015 = Урицкого улица
name:en:1923-2015 = Urytskoho Street
name:uk:1804-1923 = Воскресенська вулиця
name:ru:1804-1923 = Воскресенская улица
name:en:1804-1923 = Voskresenska Street


из недостатков - повышенная сложность и много дублирования
из преимуществ - совместимость и верификация

Last edited by Vort (2015-12-01 15:11:58)

Offline

#21 2015-12-01 15:18:56

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

Re: Перейменування вулиць

ну и какие программы поддерживают динамические ключи (name:ru:1804-1923, name:en:1804-1923...)? имхо, никому ненужный мусор

Offline

#22 2015-12-01 15:25:20

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

Re: Перейменування вулиць

olehz wrote:

ну и какие программы поддерживают динамические ключи (name:ru:1804-1923, name:en:1804-1923...)? имхо, никому ненужный мусор

у мене така ж думка
old_name + old_name:** більш ніж достатньо
якщо комусь треба більше - можна тримати в окремій базі

Offline

#23 2015-12-01 15:34:48

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

olehz wrote:

ну и какие программы поддерживают динамические ключи (name:ru:1804-1923, name:en:1804-1923...)? имхо, никому ненужный мусор

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

возможно, такое усложнение и излишне. но если идти по пути усложнения, то этот вариант мне кажется логичным

Offline

#24 2015-12-01 16:05:26

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

Re: Перейменування вулиць

Vort wrote:

это нужно для случая когда требуется отобразить старое имя в скобках, но не старее, допустим, двух лет

Ни один рендер точно не будет поддерживать наперед неопределенные теги

В Украине всего навсего около 700 улиц (90 НП), которые имеют old_name. Как правило 1-2 улицы на город.

 Тернопіль                  | 146
 Київ                       |  69
 Чернівці                   |  52
 Луцьк                      |  41
 Новомиргород               |  36
 Рожнів                     |  30
 Харків                     |  22
 Володимир-Волинський       |  20
 Дніпропетровськ            |  20
 Кіровоград                 |  19
 Одеса                      |  18
 Хмільник                   |  14
 Львів                      |  13
 Старокостянтинів           |  12
 Яготин                     |  12
 Івано-Франківськ           |  11
 Черкаси                    |  10
 Миколаїв                   |  10
 Полтава                    |  10

Не легче вручную пройтись и поудалять неактуальные old_name? Если лепить такие дикие "исторические" схемы, шанс накосячить явно выше. С одним только name и name:xx сколько проблем и нестыковок по сегментам и отношениям

Offline

#25 2015-12-01 16:08:13

Vort
Member
Registered: 2010-11-29
Posts: 444

Re: Перейменування вулиць

dudka wrote:

якщо комусь треба більше - можна тримати в окремій базі

набросал пример для Викиданных:
https://www.wikidata.org/wiki/Q21601086

Offline

Board footer

Powered by FluxBB