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

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

Добавил сводную таблицу. Надеюсь меня за этот скрипт не погонят с гислаб:) Теперь можно посмотреть кто где. Из регионов лидеров наиболее благополучная ситуация с Екатеринбургом - всего 1.6% ошибок.

С Осетией похоже какой-то прикол, но в mp попадает в самом деле один (1) адрес. Буду курить валидатор дальше.

Странный какой то валидатор, открыл ошибки по Мурманской области смотрю и такое ощущение что данные в валидаторе берутся из какого то устаревшего источника. Улицам в большинстве давно добавлена статусная часть, а в валидаторе они её не имеют.

PS: Чтобы не быть голословным, берём к примеру Кандалакшу в валидаторе, там указано что:
Кандалакша 3-й Локомотивный пер. 1
Кандалакша 3-й Локомотивный пер. 6
Кандалакша 3-й Локомотивный пер. 5
Кандалакша 3-й Локомотивный пер. 15
Кандалакша 3-й Локомотивный пер. 4

теперь открываем
http://osm.org/go/039AnhqyX
и смотрим у всех домов полное имя 3-й Локомотивный переулок, причём изменения внесены уже довольно давно. Может я чего не понимаю? Объясните. :slight_smile:

Ключевая особенность валидатора в том что он работает не по сырым данным OSM, а по польскому файлу, используемому для конвертации в СГ, поэтому в нем применяются сокращения, по традиционной для ситигидовских карт системе:

•набережная → наб.
•проспект → пр.
•площадь → пл.
•переулок → пер.
•проезд → пр-д.
•шоссе → ш.
•слово же “улица” вовсе выбрасывается, как лишнее.

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


С Локомотивными переулками проблема в том что они service, а не residential/unclassified. Такое валидатор воспринимает как ошибку. Почему дворовый/служебный проезд не может служить единицей адресации я попытался объяснить выше.

Есть какие-то аргументы, почему 3-й Локомотивный переулок должен быть service? Что именно этим пытались сказать?

Ни разу. Улица не используется как улица и проехать по ней нельзя, однако дома по ней адресуются.
У меня в окрестности это Тенистый проезд - грунтовка по парку, закрытая к тому же для проезда bollard’ами. Сейчас отмечена как residential, но как только доберусь до туда и разведаю всё подробно, переделаю в track.

Проспект вряд-ли, проезд вполне. Опять же из окрестности - западная часть Анадырского проезда. По факту - раздолбанный проезд по стоянке, который только как таковой и используется, хотя по нему всё ещё можно проехать к домам, которые по нему адресуются, но не на всём, и никто в здравом уме так не поедет, когда с другой стороны есть нормальная дорога (безымянный residential). Именно что этот кусок анадырского перестал быть улицей в бытовом смысле, однако в официальном остался и дома никуда не делись.

Вот-вот, и тропинки могут быть, почему нет?

Вот pedestrian в парке, по нему вполне могло бы что-то адресоваться:
http://osm.org/go/0t21tSaDz-

Вот footway как часть улицы:
http://osm.org/go/0t217COxT
http://osm.org/go/0t23F2yJ7
это, впочем, маленькие куски, на которые вешать название улицы смысла тет, но могут быть и длинее, и улица целиком. Лосевской улицы с последнего примера со стороны Малыгинского проезда на самом деле вообще нет - там обычные петляющие дворовые проезды - тоже в планах туда съездить и исправить её на service.

В общем - 100% ошибка это связывать наличие названия и статус, а вдвойне - привязывать к этому роутинг.

Zkir
Тогда не совсем понял смысла валидатора, если он сокращает полные имена до сокращений и выбрасывает статусную часть “улица”. Как им пользоваться?

Ох. :slight_smile:
Zkir же написал, что это не баг, а фича – то есть при конвертации в формат СитиГида статусная часть “улица” специально отбрасывается.
Поэтому в этом ничего страшного нет.

pankdm
уже понял, не внимательно прочитал пост. Интересует в чём заключается ошибка в данном конкретном вышеуказанном случае и как её исправить?

Опять невнимательно читал. Сказали же, что валидатор не любит service-улицы.

Zkir, если роутинг к дому по некоторой улице возможен и по другим улицам, то несуществующие улицы полигональные типа (микрорайоны, например) можно было бы конвертить в фиктивный отросток от роутингового графа, длиной 1 метр или типа того. Этот отросток можно приделать к роутинговому графу где-нибудь в районе центра масс полигона. А может еще лучше - вообще не присоединять этот отросток к роутинговому графу - а сделать его изолированным и расположенным в геометрическом центре полигона.

Scrup
И что теперь переделывать всё в residential? если там дороги настолько разбитые что их в пору track обзывать. В общем пока не вижу в данном валидаторе практической пользы.

Какие-то страшные способы подгонки карты к конвертеру в ситигид вы тут обсуждаете. Ничего не нужно делать специально для валидатора. Не считывает дома по highway=path или площади, не нарисованной на карте (или сделанной одной точкой) — нужно править конвертер, а не карту.

Да, по договоренности всё, что на местности является проезжей частью улицы, должны обозначаться как residential, независимо от качества покрытия. Качество покрытия описывается при помощи тегов surface, smoothness и т.д.

Если это мне, то я и предлагаю править конвертер - чтобы он генерил в картах СГ фиктивную улицу.

Другой вопрос - что если проезжей части у улицы нет, то ИМХО, улица в OSM все равно должна быть отмечена. Например, как полигон, покрывающий блок домов (если “улица” - это “9-ый микрорайон”) или еще как-то. На мой личный взгляд, “полигональные улицы” - это реально встречающаяся вещь, покрывающая почти все случаи, когда у улицы нет проезжей части - и поэтому их поддержка необходима.

Ещё раз спрошу: как в таком случае предлагается отмечать “улицы” типа “берег Невской Губы” или “67-й км МОЖД”? Или улицы, от которых уже реально вообще ничего не осталось, кроме адреса на паре домов?

Ну так может сначала стоит прочитать http://wiki.openstreetmap.org/wiki/RU:Key:addr ?
Эта схема не предполагает ни “берег Невской Губы” или “67-й км МОЖД”. Может придумать и придерживаться какой-то логичной схемы чем просто говорить что адрес это абстракция … Ну я не знаю addr:like_a_street

+1

Вот-вот, “улицы” типа “берег Невской Губы” или “67-й км МОЖД” улицами вообще ни в каком смыле не являются, и зачем их пихать в addr:street я не знаю. В вики довольно ясно записано что addr:street должна соответствовать существующей улице.

Возможно, следует ввести другой тег, например, addr:locality. Названия “бывших улиц” и микрорайонов тоже записывать в addr:locality.

Ну и можно поставить точку place=locality c тем же самым именем (если нет никого другого объекта с этим самым именем). Все-таки в адресах фигурируют не абстракции, а названия мест.