You are not logged in.
- Topics: Active | Unanswered
#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,605
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: 512
Re: Перейменування вулиць
Имеются ли какие-то средства, для того чтобы указать дату, когда старое значение перестало быть актуальным?
полагаю что это излишне, всё-таки мы тут не историей занимаемся
для исторической справки я бы предложил давать ссылку на Википедию или Викиданные
Offline
#5 2015-12-01 13:17:27
- wowik
- Member
- From: Zelenograd
- Registered: 2009-09-29
- Posts: 9,040
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: 512
Re: Перейменування вулиць
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: 512
Re: Перейменування вулиць
ещё из весёлостей переименования
улицу Спартака переименовали в улицу Спартака
именно так. пишется одинаково. только смысл разный
Offline
#8 2015-12-01 13:53:57
- wowik
- Member
- From: Zelenograd
- Registered: 2009-09-29
- Posts: 9,040
Re: Перейменування вулиць
внесения 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: 512
Re: Перейменування вулиць
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: 727
- Website
Re: Перейменування вулиць
Ставьте дату
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: 512
Re: Перейменування вулиць
Кстати, пойду подумаю как прилепить визуализацию предыдущего имени...
для этого, кстати, по принципу "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: 9,040
Re: Перейменування вулиць
значит нужно заменять старый 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: 9,040
Re: Перейменування вулиць
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: 512
Re: Перейменування вулиць
Вы забываете, что геометрия улиц меняется со временем. Например две улицы могут объеденить в одну или наоборот разъеденить (продолжить, застроить и т.д.).
согласен, это тоже надо иметь в виду
на примере того же Харькова такая ситуация с улицей Фрунзе:
у новосозданной улицы Кирпичёва получается два "предка"
Offline
#15 2015-12-01 14:18:05
- Vort
- Member
- Registered: 2010-11-29
- Posts: 512
Re: Перейменування вулиць
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: 9,040
Re: Перейменування вулиць
поменяют имя, не поменяют дату. или поменяют дату, но не поменяют имя
с 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: 512
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: 9,040
Re: Перейменування вулиць
Вы забываете, что геометрия улиц меняется со временем. Например две улицы могут объеденить в одну или наоборот разъеденить (продолжить, застроить и т.д.).
Это уже второго яаления порядка точности.
Зачем еще нужен 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: 9,040
Re: Перейменування вулиць
В голом виде old_name пока плох. Правда стали видны застарелые ошибки.
[ removed porn links ]
Last edited by kocio (2020-11-11 13:56:19)
Offline
#20 2015-12-01 15:05:42
- Vort
- Member
- Registered: 2010-11-29
- Posts: 512
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: 727
- 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,605
Re: Перейменування вулиць
ну и какие программы поддерживают динамические ключи (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: 512
Re: Перейменування вулиць
ну и какие программы поддерживают динамические ключи (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: 727
- Website
Re: Перейменування вулиць
это нужно для случая когда требуется отобразить старое имя в скобках, но не старее, допустим, двух лет
Ни один рендер точно не будет поддерживать наперед неопределенные теги
В Украине всего навсего около 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: 512
Re: Перейменування вулиць
якщо комусь треба більше - можна тримати в окремій базі
набросал пример для Викиданных:
https://www.wikidata.org/wiki/Q21601086
Offline