Универсальный валидатор (рутинг, адресация) на базе конвертации в СГ

Дамы и господа,
представляю вам универсальный* валидатор рутинга, адресации и отрисовки карты.

Все проверки разбиты на три группы.

Дорожный граф

Проверяется:

  • связность дорожного графа, т.е. отсутствие фрагментов, оторванных от основной дорожной сети (такие фрагменты недоступны для рутинга).
  • тупики важных дорог. Этот тест хорошо находит обрывы дорог, вызванные неаккуратными/вандальными правками.
  • отсутствие дубликатов дорог.

Адресный реестр

Этот тест показывает, какие дома/адреса не попадают в адресный поиск.

В СитиГиде в адресный поиск попадают дома, которые удалось сопоставить с улицами, т.е. название улицы в addr:street на доме соответствует значению тега name некой улицы, причем и дом, и улица находятся внутри одного населенного пункта, обозначенного полигоном place.
Что делает данный валидатор: проверяет соответствие имеющихся в OSM домов улицам, с учетом принятых при конвертации в СГ сокращений статусных частей.
Чего данный валидатор не делает: не сверяет адреса ни с какой другой адресной базой типа КЛАДРа, не проверяет названия на соответствие соглашению об именовании улиц.

Отрисовка карты

Проверяется целостность береговой линии, наличие городов без указанного населения, а так же наличие городов без полигональных границ.

Система рейтинга

По результатам проверок, каждой карте присваивается буквенная оценка качества: A, B, C, D, E, F, X (колонка “Рейтинг”).

Надеюсь, что этот валидатор будет полезен всем пользователям осм-данных.


*) Когда эта тема начиналась, он еще не был настолько универсальным, как сейчас. Поэтому начало темы отражает прошлое состояние вопроса, а не современное :slight_smile:

  1. Есть места, где вместо улицы есть только пешеходные тропинки. Их тоже в residential?
  2. Есть адреса, где вместо улицы в адресе фигурируют площадные объекты (парки, районы и т.п.). С ними как быть?

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

А чем ему не нравится http://www.openstreetmap.org/browse/way/40879264
вроде тоже плэйс, а адреса не ловит.

И ещё неплохо бы добавить ссылку не только на josm но и на страничку объекта в осм.

Ссылки на регионы битые из-за слеша в \addr.php.

Белгород я как раз сегодня ночью привёл в порядок. И Барнаул.

Не думаю, ибо мы отмечаем улицы соответственно их реальному использованию, а не какой-то эфемерной официальности, поэтому улица с домами вполне может быть и track и service. Другое дело что чаще всего track это действительно ошибка, но вслепую утверждать это нельзя.

Спасибо за комментарии :slight_smile:

Неправильный слеш исправил, теперь должно стать хорошо.

//И ещё неплохо бы добавить ссылку не только на josm но и на страничку объекта в осм.
Понятно, что это нужно, надеюсь будет со временем. Сейчас к тому моменту когда делается валидация, айдишники объектов теряются :slight_smile: поэтому пока используется координата)

//А чем ему не нравится http://www.openstreetmap.org/browse/way/40879264
//вроде тоже плэйс, а адреса не ловит.
там place = suburb

suburb не есть населенный пункт, а есть район населенного пункта. Поэтому и не ловит. Если этот “рабочий поселок Южный” cуть п.г.т. нужен village|town, или что там у нас положено. :slight_smile: Если это часть Барнаула, он должен быть внутри place Барнаула.

//Белгород я как раз сегодня ночью привёл в порядок. И Барнаул.
Хорошо, посмотрим что будет завтра)

На более философские вопросы отвечу чуть позже. :wink:

Тогда нельзя ли параллельно столбцу “править в JOSM” сделать “править в потлатч”?

Можно, если скажите мне как сделать ссылку на bbox в потлаче. :slight_smile:

Вей в боксе или не это имеется в виду?
Добавлено:
Или можно просто указать координаты как среднее между max и min и добавить &zoom=18

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

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

Ну пускай будет хотя бы ссылка на рамку вокруг объекта.
А саму ссылку на потлатч сделать из этого легко: ввв.осм.орг/edit?lat=<среднее между maxlat и milat>&lon=<среднее между maxlon и minlon>&zoom=18

Хочу уточнить, если улицы, по которой числится адрес дома, в жизни вообще не существует - такой адрес не попадет в адресный поиск СитиГида? Можно ли с этим что-то сделать?

//Хочу уточнить, если улицы, по которой числится адрес дома, в жизни вообще не существует - такой адрес не попадет в адресный поиск СитиГида?
Хороший вопрос. На данном этапе - нет, не попадет.

//Можно ли с этим что-то сделать?
Можно две вещи.
а) написать петицию, собрать подписи, и отправить в МИТ, чтобы они переделали адресный поиск.
б) придумать какие-нибудь теги (типа cg_proxy_address=Улица Несуществующего) и присваивать их безымянным рутинговым линиям, что бы они таки искались.

имхо проблема немного в другом.

  1. есть города с адресацией по микрорайонам или со смешенной. естественно highway с name=“м-он Березина” отсутствует. все дома теряются
  2. бывает ситуация когда остаётся дом с адресом, а улицы по каоторой он стоял уже нет (в Минске знаю парочку таких) - аналогично. дом теряется

wildMan, то что ты написал, это не проблема, это данность. :slight_smile: А проблема в том что случаи 1) и 2) не возможно обработать в рамках модели адресации в СГ (без костылей).

Кто скажет, в Гармине и Навителе эта проблема как-то решается?

В официальном гармине то же самое: дома только по улице. При чём надо явно указать на улице место, ближайшее к дому.
В неофициальном, если сильно извратиться, можно сделать полный поиск (как у меня в авто-карте), но это достаточно криво и тормознуто.

Понятно. Liosha, раз ты здесь, :slight_smile: напомни, place на отношениях osm2mp поддерживается?

Поддерживается.