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

Так, и, как же Tallinn обозначен в Эстонском ОСМ?

Ох, затрудняюсь сказать! А как вы это делаете? Как найти это? Нельзя же загрузить в редактор такой большой кусок, чтобы в него весь город влез.

Если на openstreetmap.org вбить Tallinn, то он покажет только точку в центре… Вот было бы здорово, если бы он подсвечивал всю территорию как гугл :frowning:

А граница у Таллина вообще есть? Чем задана? Одним контуром или отношением?

Скачиваете кусочек в том месте, где предполагается граница. Находите линию границы. Если граница задана просто замкнутой линией, она скачается вся. А если отношением, то скачается кусок границы и отношение. Тогда качаете остальных членов отношения и проверяете замкнутость границы.

Эт понятно :slight_smile: Я имел ввиду, что делаете, когда точное расположение границы неизвестно, или предполагается, что она неправильно (не там) нарисована. Есть возможность подсветить на карте всё границы?

В Джосме тыкаем правой кнопкой мыши на отношение, жмём “Выделить членов отношения”.

Наверное вопрос не не так понят. Как это отношение найти-то? Можно например взять ВСЮ Эстонию, и подсветить на ней ВСЕ границы допустим admin_level=9, чтобы узнать, где они проходят, и нет ли лишних там, где их быть не должно и т.д.

Можно вытащить осмозисом admin_level=9 и открыть JOSM :slight_smile:

Тегами на домах - да.
Но раз существуют разные типы НП с точки зрения адресации, то вполне логично использовать теги на НП (либо на районе НП, где используется малораспространенный тип адресации).

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

Возможно, это (только тут admin_level=8):

  <relation id="350902" version="19" timestamp="2013-01-05T13:16:06Z" uid="221167" user="Vitalts" changeset="14536663">
    <member type="way" ref="45482011" role="outer"/>
    <member type="way" ref="82506002" role="outer"/>
    <member type="way" ref="45482781" role="outer"/>
    <member type="way" ref="45483010" role="outer"/>
    <member type="way" ref="45483013" role="outer"/>
    <member type="way" ref="45482091" role="outer"/>
    <member type="way" ref="45482882" role="outer"/>
    <member type="way" ref="45482304" role="outer"/>
    <member type="way" ref="45487020" role="outer"/>
    <member type="way" ref="45487017" role="outer"/>
    <member type="way" ref="45487021" role="outer"/>
    <member type="way" ref="45487000" role="outer"/>
    <member type="way" ref="45486999" role="outer"/>
    <member type="way" ref="45487015" role="outer"/>
    <member type="way" ref="45487022" role="outer"/>
    <member type="way" ref="45487003" role="outer"/>
    <member type="way" ref="45486989" role="outer"/>
    <member type="way" ref="133535531" role="outer"/>
    <member type="way" ref="133535530" role="outer"/>
    <member type="way" ref="98997574" role="outer"/>
    <member type="way" ref="45487002" role="outer"/>
    <member type="way" ref="45487011" role="outer"/>
    <member type="way" ref="45486993" role="outer"/>
    <member type="way" ref="45487025" role="outer"/>
    <member type="way" ref="45483578" role="outer"/>
    <member type="way" ref="45487012" role="outer"/>
    <member type="way" ref="45487009" role="outer"/>
    <member type="way" ref="45486996" role="outer"/>
    <member type="way" ref="45487019" role="outer"/>
    <member type="way" ref="45487023" role="outer"/>
    <member type="way" ref="45487010" role="outer"/>
    <member type="way" ref="45487001" role="outer"/>
    <member type="way" ref="45487014" role="outer"/>
    <member type="way" ref="45464528" role="outer"/>
    <member type="way" ref="45464630" role="outer"/>
    <member type="way" ref="160224946" role="outer"/>
    <member type="way" ref="81198317" role="outer"/>
    <member type="way" ref="45481455" role="outer"/>
    <member type="way" ref="45481437" role="outer"/>
    <member type="way" ref="199639005" role="outer"/>
    <member type="way" ref="199639020" role="outer"/>
    <member type="way" ref="199638982" role="outer"/>
    <member type="way" ref="199639021" role="outer"/>
    <member type="way" ref="45481418" role="outer"/>
    <member type="way" ref="45481459" role="outer"/>
    <member type="way" ref="45481458" role="outer"/>
    <member type="way" ref="45481468" role="outer"/>
    <member type="way" ref="45481469" role="outer"/>
    <member type="way" ref="45486991" role="outer"/>
    <member type="way" ref="156817908" role="outer"/>
    <member type="way" ref="156817881" role="outer"/>
    <member type="way" ref="45482133" role="outer"/>
    <member type="way" ref="48868105" role="outer"/>
    <member type="way" ref="48868100" role="outer"/>
    <member type="way" ref="45483055" role="outer"/>
    <member type="way" ref="55015580" role="outer"/>
    <member type="way" ref="55015583" role="outer"/>
    <member type="way" ref="82513471" role="outer"/>
    <member type="way" ref="82663635" role="outer"/>
    <member type="way" ref="45482935" role="outer"/>
    <member type="way" ref="45482942" role="outer"/>
    <member type="way" ref="45482950" role="outer"/>
    <member type="way" ref="45482336" role="outer"/>
    <member type="way" ref="49445794" role="outer"/>
    <member type="way" ref="45482924" role="outer"/>
    <member type="way" ref="49445787" role="outer"/>
    <member type="way" ref="45482928" role="outer"/>
    <member type="way" ref="49445810" role="outer"/>
    <member type="way" ref="45482339" role="outer"/>
    <member type="way" ref="45482466" role="outer"/>
    <member type="way" ref="45482469" role="outer"/>
    <member type="way" ref="45482533" role="outer"/>
    <member type="way" ref="45482608" role="outer"/>
    <member type="way" ref="45482609" role="outer"/>
    <member type="way" ref="45482723" role="outer"/>
    <member type="way" ref="45482733" role="outer"/>
    <member type="way" ref="45482735" role="outer"/>
    <member type="node" ref="29787492" role="admin_centre"/>
    <tag k="addr:country" v="EE"/>
    <tag k="admin_level" v="8"/>
    <tag k="boundary" v="administrative"/>
    <tag k="EHAK:code" v="0784"/>
    <tag k="EHAK:countycode" v="0037"/>
    <tag k="is_in" v="Harju maakond"/>
    <tag k="name" v="Tallinna linn"/>
    <tag k="name:ru" v="город Таллин"/>
    <tag k="type" v="boundary"/>
  </relation>

а еще есть такой:

  <relation id="2164745" version="2" timestamp="2013-01-05T13:16:07Z" uid="221167" user="Vitalts" changeset="14536663">
    <member type="way" ref="45482011" role="outer"/>
    <member type="way" ref="82506002" role="outer"/>
    <member type="way" ref="45482781" role="outer"/>
    <member type="way" ref="45483010" role="outer"/>
    <member type="way" ref="45483013" role="outer"/>
    <member type="way" ref="45482091" role="outer"/>
    <member type="way" ref="45482882" role="outer"/>
    <member type="way" ref="45482304" role="outer"/>
    <member type="way" ref="45487020" role="outer"/>
    <member type="way" ref="45487017" role="outer"/>
    <member type="way" ref="45487021" role="outer"/>
    <member type="way" ref="45487000" role="outer"/>
    <member type="way" ref="45486999" role="outer"/>
    <member type="way" ref="45487015" role="outer"/>
    <member type="way" ref="45487022" role="outer"/>
    <member type="way" ref="45487003" role="outer"/>
    <member type="way" ref="45486989" role="outer"/>
    <member type="way" ref="133535531" role="outer"/>
    <member type="way" ref="133535530" role="outer"/>
    <member type="way" ref="98997574" role="outer"/>
    <member type="way" ref="45487002" role="outer"/>
    <member type="way" ref="45487011" role="outer"/>
    <member type="way" ref="45486993" role="outer"/>
    <member type="way" ref="45487025" role="outer"/>
    <member type="way" ref="45483578" role="outer"/>
    <member type="way" ref="45487012" role="outer"/>
    <member type="way" ref="45487009" role="outer"/>
    <member type="way" ref="45486996" role="outer"/>
    <member type="way" ref="45487019" role="outer"/>
    <member type="way" ref="45487023" role="outer"/>
    <member type="way" ref="45487010" role="outer"/>
    <member type="way" ref="45487001" role="outer"/>
    <member type="way" ref="45487014" role="outer"/>
    <member type="way" ref="45464528" role="outer"/>
    <member type="way" ref="45464630" role="outer"/>
    <member type="way" ref="160224946" role="outer"/>
    <member type="way" ref="81198317" role="outer"/>
    <member type="way" ref="45481455" role="outer"/>
    <member type="way" ref="45481437" role="outer"/>
    <member type="way" ref="199639005" role="outer"/>
    <member type="way" ref="199639020" role="outer"/>
    <member type="way" ref="199638982" role="outer"/>
    <member type="way" ref="199639021" role="outer"/>
    <member type="way" ref="45481418" role="outer"/>
    <member type="way" ref="45481459" role="outer"/>
    <member type="way" ref="45481458" role="outer"/>
    <member type="way" ref="45481468" role="outer"/>
    <member type="way" ref="45481469" role="outer"/>
    <member type="way" ref="45486991" role="outer"/>
    <member type="way" ref="156817908" role="outer"/>
    <member type="way" ref="156817881" role="outer"/>
    <member type="way" ref="45482133" role="outer"/>
    <member type="way" ref="48868105" role="outer"/>
    <member type="way" ref="48868100" role="outer"/>
    <member type="way" ref="45483055" role="outer"/>
    <member type="way" ref="55015580" role="outer"/>
    <member type="way" ref="55015583" role="outer"/>
    <member type="way" ref="82513471" role="outer"/>
    <member type="way" ref="82663635" role="outer"/>
    <member type="way" ref="45482935" role="outer"/>
    <member type="way" ref="45482942" role="outer"/>
    <member type="way" ref="45482950" role="outer"/>
    <member type="way" ref="45482336" role="outer"/>
    <member type="way" ref="49445794" role="outer"/>
    <member type="way" ref="45482924" role="outer"/>
    <member type="way" ref="49445787" role="outer"/>
    <member type="way" ref="45482928" role="outer"/>
    <member type="way" ref="49445810" role="outer"/>
    <member type="way" ref="45482339" role="outer"/>
    <member type="way" ref="45482466" role="outer"/>
    <member type="way" ref="45482469" role="outer"/>
    <member type="way" ref="45482533" role="outer"/>
    <member type="way" ref="45482608" role="outer"/>
    <member type="way" ref="45482609" role="outer"/>
    <member type="way" ref="45482723" role="outer"/>
    <member type="way" ref="45482733" role="outer"/>
    <member type="way" ref="45482735" role="outer"/>
    <tag k="name" v="Tallinn"/>
    <tag k="name:ru" v="Таллин"/>
    <tag k="place" v="city"/>
    <tag k="type" v="multipolygon"/>
  </relation>

Починил. addr:suburb на домах теперь (начиная с 20.02.2013) обрабатывается, так же, как и на улицах. Надеюсь, ничего не разломал.

По идее рейтинг RU-KDA должен заметно вырасти.

Он и вырос, но на малую долю процента. Теперь нужно приводить addr:suburb на домах и на улицах в соответствие. Бардака там хватает.

Спасибо не ожидал такой оперативности на проекте, ещё раз Спасибо.

эт мы потихоньку делаем.
спасибо за оперативность.

Если я правильно понял, теперь дома внутри полигона с place=suburb будут подхватываться автоматом и уже не обязательно ставить на них addr:suburb?

Наоборот, теперь стал обрабатываться addr:suburb на домах. addr:suburb считается необязательным элементом адреса,
см. http://forum.openstreetmap.org/viewtopic.php?pid=313674#p313674

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

А можно НП брать с домов с addr:city? У нас он почти везде корректно проставлен :slight_smile:

А, ну мы вроде сейчас так и тегируем. Спасибо.

Вопрос снят! (см ниже).

http://www.openstreetmap.org/browse/relation/2252378
addr:street = 1-я улица (СНТ “Виктория”)