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

Zkir, а СГ роутит к домам на улице только по этой самой улице? Он не умеет заводить с другой улицы, если до нее ближе, чем до той, по которой дом имеет адрес?

Справедливости ради в новых приборах у Garmin реализована уже точечная адресация.

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

Обещанные соображения по философским вопросам. :slight_smile:

Вот именно, если улица используется как улица: дома стоят, люди ходят, машины ездят, есть название, адресация, то это улица (residential) и есть. Так что highway=track + name=улица Пупкина это ошибка 100%. Улица может быть без покрытия, насколько угодно разбита, но от этого она не перестает быть улицей. Возможно, конечно это ошибка II рода, когда это никакая не улица, а колея у кого-то на заднем дворе. Но тогда нужно с такого track сносить name. Тоже касается и service. Ну что может значить highway=service + name=проспект Коммунистов ? что это не улица, а дворовые проезды, только именованные?

Что значит вместо? Так есть улица или нет улицы? :slight_smile: Если нет улицы, то оправданно ли эти тропинки оправданно носят название «улица»?

А что такое “улица”? :slight_smile:

Есть дома, приписаные к некой улице. В офицальной карте указано, что улица проходит между этими домами. А на деле там пустырь с протоптаными пешеходными тропинками. :slight_smile:

А ещё есть адреса вида “Больничная горка, дом 3”, “Фарфоровский пост, дом 42”. Это уже вообще нифига не улицы, а название области. А на некоторых картах их таки делают улицами. И потом появляются перлы типа “улица Больничная горка”, “деревня Будка железной дороги 12 км” и т.п. порождения компьютерной обработки.

Сдаётся мне что многие такие “фантомные” объекты на современных картах как раз и появились из-за несовершенства программ, обязательно требующих для поиска применения только своей ограниченой классификации.

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

Добавил сводную таблицу. Надеюсь меня за этот скрипт не погонят с гислаб:) Теперь можно посмотреть кто где. Из регионов лидеров наиболее благополучная ситуация с Екатеринбургом - всего 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 и т.д.