по поводу даты последнего переименования:
у каждого из предложенных вариантов есть свои преимущества и недостатки
в такой ситуации можно продолжить искать компромисс
но можно и принять решение на своё усмотрение
хуже не будет - дополнительные данные обособлены, в любой момент их можно или убрать или переоформить
на всякий случай, соберу варианты в одном месте:
не вносить исторические данные / размещать исторические данные в отдельной базе
придумать тег для указания даты актуальности
использовать пространство имён для задания диапазона дат
разработанный вариант с хоть какой-то практикой применения всё же лучше хаоса, так что в случае особого желания/необходимости внести эти данные, лучше использовать именно его
у нас нет исторических объектов, но есть исторические свойства реальных объектов
раз улицы Ленина уже нет, то и релейшен ей теперь не нужен
зато остались сегменты улицы, куда вполне можно помещать old_name
в релейшен же улицы Энергетиков можно вполне добавить тег note или description с пояснением ситуации
Тоді вийде так що в навігаторі буде вулиця Енергетиків і вулиця Енергетиків(Леніна), але всі будинки прив’язані до “вулиця Енергетиків”. Так нормально?
мне сложно делать выводы по специфике навигаторов
но по логике в данных всё нормально:
дома ведь привязаны не к имени, а к релейшену
у которого имя, кстати, вполне себе опционально
Згідний. Релейшин має включати в себе лише згруповані по name + addr_subrurb сегменти. Всі інші теги (стара назва сегменту, покриття сегменту, максимальна швидкість на сегменті) агрегувати:
SELECT name, addr_suburb, ARRAY_AGG(old_name) AS old_names FROM osm_roads GROUP BY addr_suburb, name
Пример раз: На Клове есть переулок Кости Гордиенка. На местности такого переулка не существует, а есть переулок Чекистов (по крайней мере, так дело обстояло летом). Т.е. при том, что улица переименована давно (кажется, несколько лет назад), найти её на местности по новому названию, не спрашивая прохожих - нереально.
Пример два: Когда последний раз закупался в Аптеке доброго дня (сентябрь-октябрь), в колл-центре мне упорно называли адрес на Красноармейской. При том, что улицы Красноармейской не существует, а существует Большая Васильковская. Помогли опять же местные (я редко бываю в том районе). По итогам попросил провизора стукнуть работникам колл-центра по голове.
На тот момент таблички висели в половине случаев новые, в половине - старые. На доме с аптекой была старая, на двери самой аптеки - новая (но в колл-центре сказали старое название, лол). Сейчас, как говорят ребята, что были там недавно, адресные таблички уже переделали. Все или нет - не в курсе.
Если так задавать вопрос, то да, таких примеров, наверное, мало. У меня их нет.
Чисто гипотетически такая ситуация может возникнуть, но в данном конкретном случае я предлагаю решать проблемы по мере их поступления
реально використовується рандомне значення. Бо колись вся була Січневого повтосання, потім стала вся Мазепи, потім (наскільки я пам’ятаю) стала вся Лаврська, а потім Лаврську обрубали по пл.Слави, а від пл. Слави стала знову Мазепи.
Не совсем понятно, как обрабатывается ситуация, когда на разных языках старые названия улиц звучат одинаково, а новые - нет. Имеются ввиду теги addr:street, addr:street:ru например. Предлагаемый скрипт, похоже, может зацепить все теги, которые изначально выглядят одинаково. Не уверен, что это правильно. Пожалуйста, дайте знать, если я ошибаюсь.
Ещё один скрипт на PowerShell по переименованию улиц. Работа проверена на Днепропетровске. Итого переименовано порядка 300 топонимов.
Внимание! Если в населённом пункте изначально есть две улицы, которые до переименования назывались одинаково, а после него должны называться по-разному, скрипт эту ситуацию обработать корректно не может в силу структуры хранящейся в базе данных OSM информации. В итоге обе улицы получат одинаковое новое название (первое попавшееся из файла с исходными данными). После загрузки обработанных данных в OSM вы должны потом вручную поправить названия для таких улиц и других объектов (отношений, зданий). Либо вы можете населённый пункт с улицами-двойниками обрабатывать по отдельным районам, таким, где нет улиц-двойников.
Инструкция по применению скрипта находится внутри него.