Валидатор московских адресов

Дык в том-то и дело, что меньше всего хочется делать проверки по отдельным словам

Зеленоград общим аршином всё-равно не измерить :wink:

А надо :slight_smile:
Но этот вопрос надо бы всё-таки обсуждать отдельно.

Сделал более точный расчёт процента заполнения.
В главную таблицу добавил для каждой улицы количество “неканонически” записанных номеров домов и названий улиц

спасибо! может все таки раскрасить большим количеством цветов?
например, логичным мне кажется следующий набор
зеленый - правильный
серый - не найден в осм
розовый - не найден в реестре
желтый - неправильный формат адреса
оранжевый - неправильное название улицы
и куда нибудь легенду ткнуть…

Я бы рекомендовал пользоваться подходом ОКУМ-а, во всяком случае он разумен и непротиворечив. Улицы с двойными названиями есть во всех крупных городах и так их различают. А для удобства пользователей можно вводить сколько угодно понятных всем территорий типа Замоскворечье, Китай-город или Южное Бутово.

Поставил так.
Но как я уже говорил, за нормальный дизайн был бы очень благодарен :slight_smile:

Круть!

Только вот тут глюк - считает название улицы неправильным, хотя оно правильное
http://gis-lab.info/data/mp/msk/?code=00970

А не, вру. Там в названии (в осм) два пробела. Вроде все кривые addr:street по Москве исправил.

Что будем делать с “проезд N XXX” и “проектируемый проезд N XXX”?
Не писать же их в самом деле с большой буквы?

Так все таки что же делать?
Эти домики, например, по http://www.ggk.mos.ru/data/guest/show_map_frame имеют совершенно другие адреса и по другой улице. В ОСМ они по ул. Академика Скрябина - в ОМКУМ таких адресов вообще нет, в ggk.mos.ru они по Ферганской ул.

А нельзя ли прикрутить статистику, когда и сколько процентов было сделано? Чтобы видеть “прогресс”?
И еще мне интересно, что все-таки помешало когда-то взять адресацию с http://www.atlasmoscow.ru ?

А можно не форсить адреса с пробелами? Кроме того, что никто так и не сказал зачем они нужны (учитывая что буквы, включенные в номер и с/к от строения/корпус мы различаем по регистру), один еще и сумятицу вносят - я видел где-то адрес вида 1 к2/2. Посмотрите как написаны адреса в том же atlasmoscow - по-моему, больше ничего не надо.

Лучше отмечать жёлтым всякие “корп.” и “стр.”. И, кстати, как писать владение и домовладение?

PS. Валидатор приравнивает латинские k и с к соответствующим кириллическим, но не aAbBdDeE. Поэтому я вчера сконвертил все addr:housenumber в Москве в кириллицу где можно было - с B и D получается неоднозначно, им добавил fixme.

Разделил статистику по отдельным нас. пунктам.
Правда, глюки со сложными улицами пока не решены.

С прогрессом пока нет смысла заморачиваться, потому что сам расчёт ещё не устаканился.

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

Что-то я не могу найти тему, где это последний раз обсуждалось.

Перезакачал адресный реестр - разница почти в тысячу записей…

Кстати, доступа к полному реестру у меня всё так же нет, так что улицы только те, что есть в ОМКУМ.
А иногда вылезают и такие перлы:

Вроде сделал нормальную обработку одноимённых улиц. Проверяйте.

Зеленоград в эту норму, как всегда, не укладывается.

  1. Если название улицы не уникально в Москве, то это еще не повод от нее требовать в обязательном порядке наличия suburb. Улица может и без этого быть вполне уникальна в рамках Зеленограда. (Первомайская улица)
  2. Если название улицы уникально в Москве, или в Зеленограде, то это еще не повод от нее требовать в обязательном порядке отсутствия suburb. Для уточнения suburb бывает полезен. (Медведковская улица, Садовая, Новая, Ровная и т.п.)
  3. Если название улицы не уникально в Зеленограде, то это еще не повод от нее требовать в обязательном порядке наличия suburb. subur должны иметь только улицы вне “собственно Зеленограда”. Иначе suburb=Зеленоград :wink:
  4. Если название улицы уникально в Зеленограде, то это еще не повод от нее требовать в обязательном порядке наличия/отсутствия правильного suburb. Для уникальности в классификаторе стоит или “Зеленоград” или suburb, угадать невозможно.
    Заречная улица (г. Зеленоград), плавно переходит в Школьная улица (Крюково). Ладно, есть Школьная улица (пос. Малино) , но почему улица Ленина (Крюково), а выходящая на нее Советская улица (г. Зеленоград), это никак не понять.

В общем алгоритм надо выворачивать на изнанку. Идти от того, что есть в OSM и пытаться найти это в классификаторе, причем не единственным образом.
Сейчас же из классификатора берется “идеальное название” и ищется в OSM причем единственным образом.

С Заводской беда. Она, как я писал, искусственно поделена на две части, но дома приписаны к одной.

Вообще-то мне это кажется или те улицы, на которых, по мнению справочника, нет домов в список не попадают?
Зато потом выплывают, как “неизвестные” .

Что-то в моем списке улиц, взятом с http://mosclassific.ru/mClass/spravum_view.php , в Зеленограде больше.
http://wowik.000space.com/zelenograd.htm

Где у вас, к примеру, Филаретовская улица ?

Да, и последнее по порядку, но не по важности, а где же все безуличные корпуса? :wink:

Повод, повод. Все вменяемые случаи, типа addr:suburb=Зеленоград в Зеленограде, разруливаются правильно. Все остальные это уже ошибки.

Да, улицы без домов отбрасываются.

У безуличных корпусов [по официальному реестру] предполагается addr:street=“город Зеленоград”

Не верно. Вы исходите, что адрес правильно может быть записан единственным образом.

А здря.

Масло масляное. Приехали. Дойдем до того, чтобы писать

addr:city=Зеленоград
addr:suburb=Зеленоград
addr:street=Зеленоград

А потом скатимся
addr:city=Москва
addr:suburb=Москва

У нас задача не привести адреса к тому, как они в реестре, а проверить по реестру.
Там введена искусственная конструкция, из-за ленивости программистов, не могущих дом повесить на город.
В OSM сейчас введена другая, чуть более осмысленная, искусственная конструкция (addr:street=Микрорайон), для ленивых программистов конверторов, не могущих сделать поиск домов без улицы.

Еще раз повторяю, что в реестре suburb написан порой от балды.

Оно конечно можно мапить под данный валидатор, но тогда почему бы не под другой, или под конвертор?

В общем, как минимум, перед сравнением надо избыточные addr:suburb откидывать при сравнении, как в адресе, так и в улице.
Ибо наличие уже addr:city приводит к уменьшению неоднозначности.