В индексатор. И его можно сделать достаточно умным, чтобы числа он группировал по другим правилам - это даже винда умеет
Можно сделать умный, но умный будет ошибаться.
А можно сделать достаточно простым, и давать ему четкие указания. Тогда ошибок индексатора не будет. Будут только ошибки пользователей индексатора.
Ну и какой умный индексатор занесет дома по Березовой аллее в микрорайон? А если и занесет, то не в четвертый а во второй, куда они всю жизнь входили?
В любом случае, даже для самого суперумного индексатора надо иметь возможность делать подсказки.
Ибо разделить 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 или что нибудь в таком духе, см выше
Ещё вариант - разрабатывать обучаемые валидаторы. Непонятно только какие факторы им надо принимать во внимание.
… на данный объект в осм будет устанавливаться тег addr:no_street = yes или что нибудь в таком духе, см выше
возможно, что то не так понял, но разве нельзя:
1.
addr:street=улица
addr:housenumber=1
отс. addr:street проверяем в валидаторе addr:city
2.
addr:city=пос. Кольцово
addr:housenumber=1
зачем addr:house_by, addr:no_street
лёша по моему об этом и говорил
Scondo, для выгрузок, которым необходима улица, вполне достаточно будет
$street ||= first {defined} ($quarter, $suburb, $city)
И никаких house_by не нужно.
А как обозначить адрес типа “Город Балашиха, Шоссе энтузиастов, северная промзона дом 6”? (что-то в этом духе лично видел, буду там еще раз - сфоткаю)
И опять же вопрос насколько распространена адресация без улиц чтобы считать адрес с домом и городом без улицы полным при отсутствии дополнительной информации…
addr:quarter=Северная промзона, разумеется
распространена адресация без улиц чтобы считать адрес с домом и городом без улицы полным при отсутствии дополнительной информации…
Я же приводил пример Истринского района: такое там в каждой второй деревне.
И какой это процент от 50 тысяч домов без улицы по России?
addr:quarter=Северная промзона, разумеется
Кстати о кварталах - http://wiki.openstreetmap.org/wiki/Proposed_features/place%3Dquarter еще не принят и народ-то не очень-то поддерживает.
И еще связанное с этим голосование http://wiki.openstreetmap.org/wiki/Proposed_features/place%3Dneighbourhood
И какой это процент от 50 тысяч домов без улицы по России?
Давай считать ошибочными все слова с безударной “а”, потому что её очень часно пишут по ошибке вместо безударной “о”.
Нет, давайте придумаем как их различать. О чем и тема.
Можно, канечно, считать слова с безударной “а” всегда правильными. Даже если “а” написана вместо “о”.
Нет, давайте придумаем как их различать
Угу, будем обязывать всех к слову “ракетка” обязательно дописывать “ракетка (здесь действительно буква А)”, а иначе ругаться на ошибку. Так?
Ага, а улицы не будем подписывать словом улица раз не написано слово улица, значит улица. Я вот давеча кучу таких правок делал - кто-то подписал дома типа addr:street=Советская, addr:street=Ленина но addr:street=проспект Победы Слово street уже есть в теге
fserges, без хи-хи, есть немало проектов, где приняты именно такие правила. И вполне обоснованно.
Так вот, если бы мы точно знали что бОльшая часть улиц отсутствуют законно, а пропущеных процентов 5-10, я бы действительно сказал что ради этих копеек не стоит докручивать базу.
У нас, простите, ситуация другая.
Дописывание слова “улица” тоже не от хорошей жизни появилось.