Ещё одна схема адресации: населённый пункт без улиц

Подниму связанную тему.
Не адресация, но группировка.

Обычно при поиске (в нафигаторах) дома группируются по улицам, но если улицы нет, то не всегда получается удобно и/или общепринято.

Пример: Зеленоградские адреса без улицы, но дома по ним при поиске принято группировать по микрорайонам (которые в адресации никоим образом не участвуют). Иначе получаем длинный список в тысячу с гаком элементов.

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

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

Вот и addr:street точно так же не должен предполагаться.

addr:street - необязательный элемент и никто не должен предполагать его наличие. Я это вам, как зеленоградец, точно говорю!
В отечественной адресации вообще ничего заранее предполагать нельзя :slight_smile: ! В адресе, как мне кажется, нет ни одного обязательного элемента :wink:

Если это и проблема, то не схемы. Схема просто не предназначена для оценки полноты данных.

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

А, по-моему, называние вещей своими именами и отделение одних сущностей от других позволяет прибилизиться к решению.

Действительно можно, действительно не требуется, но не удобно. Опять же, алгоритм определения какие подстроки брать для группировки надо зашивать в конвертор/навигатор?
Видал я такое, так часть первого микрорайона и десятого сваливают в одну кучу, а другую часть первого и одиннадцатый сваливают в другую и т.п.

корп 100
корп 1001
корп 1002
корп 1009
корп 101
корп 1010

корп 110
корп 1101
корп 1102
корп 1109
корп 111
корп 1110

При отстутствии “информации о законности” проблема не решается. Поэтому это решение, наверное, будет работать, если второе предложение будет начинаться так: “Информацию нужно занести…”. Будет ли внесена эта информация?..

Однозначно нет!
Это просто способ убрать ругань валидатора, если она кого-то достала в конкретном месте. Больше в этой информации смысла нет.
А вообще-то нефиг мапить под валидатор :slight_smile: ! И чего бы ему не жить со своей базой?

А как эта проблема решена во всяких Дубль ГИС и прочих картах для навигаторов?

Это не чушь, это другая концепция:) Там имелось ввиду, что addr:street - это название того объекта, к которому относится номер. Улицы, квартала, района, НП. Номер же так или иначе должен к чему-то относиться. По-моему, это вполне имеющий право на существование подход к схеме адресации.

Вот очень плохо, что не предназначена. Наличие избыточности, позволяющей находить и исправлять ошибки - благо, а не зло.
А если никакой проблемы нет, то и менять ничего не нужно. :smiley:

?! Номер относится к зданию/строению/сооружению.
А расширение-размывание смысла addr:street - плохая практика. Соотв. концепция вряд ли имеет право на существование.

Ну, м.б. не очень :slight_smile:

Это бесспорно. Но где в ОСМ такое практикуется?

Ага, говорим “партия” - подразумеваем “ленин”.
Не надо было тогда использовать слово “улица”.

Да, только это совсем-совсем другая схема. У белорусов такая была: a2, a4, a6 и связи между ними через релейшены.
А в нашей схеме addr:* развёрнуто прописываются элементы, а связи явно не указываются.

В индексатор. И его можно сделать достаточно умным, чтобы числа он группировал по другим правилам - это даже винда умеет :slight_smile:

Можно сделать умный, но умный будет ошибаться.
А можно сделать достаточно простым, и давать ему четкие указания. Тогда ошибок индексатора не будет. Будут только ошибки пользователей индексатора.

Ну и какой умный индексатор занесет дома по Березовой аллее в микрорайон? А если и занесет, то не в четвертый а во второй, куда они всю жизнь входили? :slight_smile:

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

Ибо разделить 5-й микрорайон и микрорайон 5а никакая винда не поможет. Ибо там нет мировой константы 522 - номер первого корпуса микрорайона 5а.

Поскольку для нормального использования (например выгрузки в навигатор с адресным поиском) надо иметь эту информацию внутри ОСМ, имеет смысл придумать а как эту информацию в ОСМ хранить.

Я вот предложил вариант addr:house_by. Для него, разумеется, надо еще придумывать все схемы прочтения (например как читать если есть addr:suburb, при addr:house_by=town), но это тема для обсуждения.
“Считать все валидными, а неполноту проверяем как хотим, например сбоку” - это не выход. Потому что эти докрутки придется таскать с собой по всем возможным применениям адресации.

Каким это всем? Есть только одно “применение” - валидация адресации.

Scondo, для выгрузок, которым необходима улица, вполне достаточно будет
$street ||= first {defined} ($quarter, $suburb, $city)
И никаких house_by не нужно.

И опять, не надо путать правильный адрес с правильно записанным адресом.
Если в осм внесли адрес “Новосибирск, дом 5”, то он неправильный не потому, что забыли улицу, а потому, что такого адреса не существует.
А проверить реальное существование адреса только по осмовским данным всё равно невозможно.

Кстати о индексаторах, уже есть же для них подсказка: sorting_name. Можно и что-то типа grouping_string иметь или, что правильнее, специальный тип replation’ов.
Кстати, подумалось, что используя хитрые sorting_name, можно наладить не только правильные сортировки, но и правильные группировки, если в эту строку включать в виде подстроки название из верхнего уровня иерархии.
“sorting_name”=“5-й микрорайон/корп 521”
“sorting_name”=“микрорайон 5а/корп 522”

Товарищи, а вы уверены, что стоит считать валидатор последней инстанцией? http://addresses.amdmi3.ru/ зело полезная штука, недавно по ней прошелся с пользой для дела и левого берега Н-ска, но мне кажется это всего лишь помошник для пользователя и его задача дать пользователю знать, что там что-то не так.

Я согласен с liosha, пусть в выгрузки попадает первый определённый из улицы/квартала/микрорайона/города. А окончательную правильность обозначений в конкретном месте должен определять человек там живущий, который воспользовался валидатором и заметил, что там всё правильно/исправил и ткнул в валидаторе «отметить как исправленное».

Если же проблема именно в том, что людей раздражает, что валидатор постоянно ругается на правильную по сути адресацию подумайте, можно ли реализовать там рядом с кнопкой «отметить как исправленное» кнопку «считать правильным», при нажатии на которую эти отметки не будут пропадать со временем как исправленные, а будут скрываться специальной галочкой в настройках у пользователя. Так и сайтом можно будет пользоваться для нахождения несоответствий, и базу оно будет набирать того, что «считать привильным», и глаза мозолить не будет, и будет полная уверенность, что местный картограф подтвердил правильность не совсем привычных обозначений.

… на данный объект в осм будет устанавливаться тег addr:no_street = yes или что нибудь в таком духе, см выше :stuck_out_tongue: