Ужасы адресации в Украине
В украинском разделе форума всплыла тема с адресацией домов по району, а не улице. Российское сообщество в этом случае использует addr:suburb, но в Украине принята схема адресации отношениями. По ней на дом ставится только addr:housenumber, затем дома добавляются в отношение типа street вместе с улицей. Dimonster составил более-менее подробное описание схемы с учётом двойной адресации и прочих необычных случаев. Так, второй адрес должен ставиться на точку внутри дома, которая войдёт в отношение street соответствующей улицы. В случае адресации по микрорайону в отношении отсутствуют члены с ролью street, что, по мнению dimonster, не важно.
Одной из главных причин использования отношений стали двуязычные названия почти всех улиц. Перенос названия улицы в отношение упростит обработку данных после «языковых войн», периодически вспыхивающих в Крыму и окрестностях. Кроме того, устраняется избыточность: название улицы достаточно написать дважды, на линии и в отношении. Украинское сообщество (или liosha), почему-то, не считает тег name идентификатором: так, для адресации по улицам с названиями на нескольких языках они (до ввода отношений) предлагали расставлять на домах addr:street:uk, addr:street:ru и т. п.
Эта схема тегирования используется не на всей территории Украины (например, не здесь), и озадачивает сделанные в России валидаторы: сайт контроля качества для Ситигида жалуется на почти двадцать тысяч неуказанных улиц в адресах. Однако свежая версия лёшиного конвертера в MP схему понимает, поэтому поиск в выгрузках для Навитела и Гармина работает. Наверное, именно поэтому, в отличие от белорусской схемы, эта смогла выжить и распространиться.
Одной из главных причин использования отношений стали двуязычные названия почти всех улиц. Перенос названия улицы в отношение упростит обработку данных после «языковых войн», периодически вспыхивающих в Крыму и окрестностях. Кроме того, устраняется избыточность: название улицы достаточно написать дважды, на линии и в отношении. Украинское сообщество (или liosha), почему-то, не считает тег name идентификатором: так, для адресации по улицам с названиями на нескольких языках они (до ввода отношений) предлагали расставлять на домах addr:street:uk, addr:street:ru и т. п.
Эта схема тегирования используется не на всей территории Украины (например, не здесь), и озадачивает сделанные в России валидаторы: сайт контроля качества для Ситигида жалуется на почти двадцать тысяч неуказанных улиц в адресах. Однако свежая версия лёшиного конвертера в MP схему понимает, поэтому поиск в выгрузках для Навитела и Гармина работает. Наверное, именно поэтому, в отличие от белорусской схемы, эта смогла выжить и распространиться.
IMHO, лучше использовать википедийную схему ссылок вида addr:street=ru:Название улицы
> Для линии улицы пишем роль street, а для домика роль house.
Лучше бы писали бы в role номер дома, логичнее бы было
И как тогда задать название улицы на разных языках?
>> Российское сообщество в этом случае использует addr:place
addr:quarter, а не addr:place. addr:place — это совсем для другого
Вообще-то это Liosha (автор конвертерера) так считает. И извращённые теги типа addr:street:ru тоже идея Лёши.
>>название улицы достаточно написать дважды, на линии и в отношении.
Вообще-то мы предлагали Liosha переделать конвертер, чтобы мультиязычные названия улиц брались не из тегов отношения, а из тегов name:xx на линиях улиц. Даже готовый патч выкладывали. Но Liosha считает такой перенос названий неестественным, и патч в свой конвертер не включил. Поэтому приходится названия улиц писать и на линиях, и в тегах отношения.
>> сайт контроля качества для Ситигида жалуется на почти двадцать тысяч неуказанных улиц.
Вот это уже неправда. Во-первых, не улиц, а домов, во-вторых, отношения он таки понимает
> И как тогда задать название улицы на разных языках?
Так же, как и сейчас — в свойствах самой улицы. Весь смысл такой ссылки — уйти от использования name без указания языка и использовать в качестве идентификатора name:xxx
Если автор конвертера не хочет поддерживать конкретную схему, всегда есть обходной путь — сделать препроцессор, который бы из исходных данных сделал такие, какие ему нравятся. :-)
Правильно, для этого и нужно отношение, связывающее дом и улицу. А если этого отношения нет? Использовать в качестве связи само название — плохая идея.
это тоже не будет поддерживаться конвертером
>>сделать препроцессор,
а потом что? Всем и каждому пихать этот препроцессор и пояснять, что «Лёша не хочет» ?
Я не специалист по перлу, но почему-то ведь при привязке улицы к городу проблем с поиском границ города «хрен знает в какой местности» не возникает.
Хотя мысль с препроцессором весьма интересна, его будет несложно сделать.
Чем плохи параметрические роли?
Хотя бы чем они хуже текущего изврата с точкой, которая включается во второе отношение или допиливания API специально для Украины?
> хрен запроксируешь в шейпы и любой другой формат со стандартным набором колонок
ИМХО, проблемы рендереров. Или мы всё-таки рисуем под рендереры, если очень хочется? :)
> Изначально они предполагались фиксированным списком.
Где это написано? Не вижу ни в описании API, ни relation-ов.
> Ну хватит уже любое извращение прикрывать «не рисуем под рендереры», а?
Ну замечательно, языковые войны, игнорирование связки через name и второй адрес на левой точке здания — не извращение, а параметрическая роль — извращение.
И эти люди запрещают мне рисовать внутримикрорайонные проезды highway=residental-ом и не дают номер корпуса называть номером дома :)