Ужасы адресации в Украине

Ну как сказать…
У каждой навигационной программы свой формат геоданных. В OSM свои правила обозначения объектов и тегирования. И эти правила надо чётко соблюдать. И менять в правилах что-то можно только если в этом есть реальная необходимость. Например, если изначально не были учтены какие-то особенности объектов, и отобразить эти особенности имеющимися средствами нельзя.

А превращение данных в формате ОСМ в данные в формате для какой-то навигационной программы - это задача конвертера и головная боль его автора.

А если навигационная программа не понимает что-то из того, что есть в реальности и правильно отображено в ОСМ, то это должно быть “головной болью” авторов программы.

Если при адресации оглядываться на конвертор от товарища liosha, то вроде так можно. Вот только по шестому пункту у нас с liosha возникли разногласия. Почему-то liosha хочет, чтобы мультиязычные названия улицы (или микрорайона) были обязательно указаны в тегах релейшена в виде name, name:ru, name:en и т.д. В случае адресации по микрорайнам это вроде бы логично.
Хотя в случае обычных улиц эти названия можно спокойно взять с линий улиц. Мы ведь подписываем на линиях name=Радянська вулиця, name:en=Radyanska Street, name:ru=Советская улица.
Но liosha упёрся и не захотел переделывать конвертер, хотя мы ему даже готовый патч передали. Вместо этого liosha заставляет дописывать на домиках языковые суффиксы addr:street**:ru**, addr:street**:en**. Хотя нигде в правилах этого нет.

Как ни крутись, для адресации программе СитиГид нужна улица с названием. Так что в СитиГиде и этот алгоритм работать всё равно не будет. Зато в Навителе будет :slight_smile:

dimonster
Гм. ИМХО вы мне доказываете то с чем я и не спорил в общемто.
Я к другому клоню. Пытаюсь от значительно более опытного товарища получить недвусмысленный ответ как наиболее правильно поступать с такими местами. Опишу то что я вижу пока.
Дано:
*. Для Украины принята адресация через relation, следовательно тег addr:street на полигонах зданий для Украины является deprecated и по сути оставлен для совместимости.
*. Для мест где дома не привязаны к конкретной физической улице рекомендуемый relation не может быть полноценно использован. Либо надо выработать общепринятую процедуру как его использовать.
*. Для решения проблемы адресациии таких мест предложен не поддерживаемый в данный момент никем тег add:place который надо проставлять на каждый дом индивидуально. То есть: предложено заменить один deprecated тег другим.
И вот в этом месте не совсем понятно зачем козе боян? Зачем менять устоявшийся тег на другой если на самом деле нужно просто договорится как адресовать эти места через relation. Что я и пытаюсь сделать.
Я ничего не имею против addr:place но это не вписывается в схему адресации relation-ами. Получаем принципиально разные схемы тегирования для вариантов “есть улица/нет улицы”.

Я имел ввиду содержание ответа на несколько вполне конкретизированных вопросов. ИМХО там была вода.

С этим никто не спорит.

Я как раз и спрашивал как правильно делать. Предлагаю взять приведенный мной алгоритм за основу и обсудить его.

Разумная избыточность данных еще никому не мешала. В relation улицы может быть много элементов с ролью street, в некоторых теги name могут быть проставлены с ошибкой/опечаткой. Получаем неоднозначность из какого way-я брать нужное имя. Если брать name из relation то такой неоднозначности нет, тут я полностью солидарен с liosha. И к тому же такой вариант имеет “совместимость вперед” в случае “необычных” улиц которые мы сейчас и обсуждаем. Все логично. )

Согласен что это по сути не важно.

Итого: нужно выработать четкий алгоритм использования relation associatedStreet для адресации мест где адреса привязаны не к улице а к некоей площади. Главный вопрос, какой объект использовать в роли street для случаев микрорайон/площадь/etc.

Zaskoruzlov Garik
addr:street не є застарілим тегом ні в Україні ні в іншій країні - обидві схеми цілком рівноправні
А ось addr:street:uk/ru/en - видумані теги, які незручно вносити/редагувати/використовувати, до того ж вносять дублюючу інформацію, часом некоректну.

dudka
Ох. Да согласен addr:street:uk/ru/en неудобны но мультиязычность названий все равно нужна и потому нужно переходить на relation повсеместно где это возможно.
Вот я и пытаюсь поднять вопрос о том можно ли использовать relation для мест без физической улицы.
Если можно то как? Расписать правила для разных случаев и это самый лучший вариант.
Если нельзя, то нужно четко договорится, что “Для случаев адресации без существования физической улицы relation не использовать, а использовать схему с тегом addr:place на каждом полигоне здания описанную тут

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

Лично мне кажется, что логично было бы при создании релейшена улицы убирать теги name с веев улиц, и записывать их только в релейшен. Но почему-то в ОСМ требуется тег name на отрезках улицы. Без него рендер не напишет название.

ИМХО, никакой. Ну нет там такого объекта, чтобы подходил на роль street, как у обычной улицы. Разве что мелкие проезды между домами.

Просто напишите в тегах релейшена name=Ювілейний квартал, name:ru=Юбилейный квартал.
Лёшин конвертер это поймёт.

dimonster

Конечно не должно, но они всегда есть. Системы нужно делать по возможности с устойчивостью к простейшим ошибкам навроде опечаток. Это жизнь.

А мое ИМХО что все таки что то нужно. И не обязательно это должен быть highway ведь роль объекта в relation это не его тип. Тип как раз прописан в тегах самого объекта.
Вот и надо обсудить и прийти к общему знаменателю.

Я думаю, что члена street тут не получится. Нужно в это отношение проставить addr:place, и всё. Тег унаследуется на все домики. Но чем оно поддерживается, неизвестно, может даже и ничем, нужно пробовать.

В пункте 6 добавление преводов является излишним. name в отношении associatedStreet задумывался только для удобства работы с самим отношением, следовательно, переводы смысла особого не имеют.

_sev

Ага, спасибо большое.

А не возникнут ли проблемы при конвертации карты с языком отличным от языка по умолчанию? На сколько я понимаю тег name relation-а превращается в тег addr:street всех содержащихся в нем объектов с ролью house.
Соответственно и name:ru → addr:street:ru и тд. Иначе не удастся обеспечить адресный поиск на языках не по умолчанию.

И кстати:

А разве не наоборот? Я как то считал что теги объекта перекрываются тегами из relation.

А как правильно ставить номер дома, если это несколько зданий (частный дом+хозпостройки/организация/завод и т.д.)?

Присоединяюсь к вопросу. Таких много в частном секторе.
Думал создавать мультиполигон из домов, но вставка одного отношения в другое как то настораживает.

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

to Larry0ua а если одно здание но с разной этажностью, они нарисованы отдельно, как на них правильно ставить адреса? например http://osm.org/go/0jfS6VlRI

на зовнішній контур:
building=yes,
addr:**,
building:parts=vertical
на внутрішні:
building:levels,
building:part=yes
тільки без мультиполігонів!

Конечно же нет, иначе получилось бы, к примеру, что Днестр, по которому проходит граница Украины, стал бы называться Украиной… или Молдовой… или Винницкой областью :slight_smile:

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

http://www.openstreetmap.org/browse/changeset/14663064

эээмм, дурак, не понял, можно вот на этом примере http://osm.org/go/0jfNWU1ma

http://www.openstreetmap.org/browse/changeset/14663990

Ааах вот как, теперь понял, спасибо… :slight_smile:
просто обвести контур и добавить соответствующие теги…

зы: а то что валидатор джосм ругается на перекрытие линий - это норм?

http://www.openstreetmap.org/?relation=175321 - теж саме, але з мультиполігонами :slight_smile:
на панорамах Яндекса школа виглядає так http://maps.yandex.ua/-/CVFLyFph