Кладр-бот определяет не по названию, а по названию + по нахождению внутри границ. Это, согласитесь, не одно и то же.
Ну да. Боту еще и границы следить надо.
Для пгс могу предложить два других, заведомо более рабочих варианта:
- релейшен collection, в который собрать дома и относящуюся к ним улицу (куски улицы);
- поиск конвертером улицы в радиусе от дома 500метров плюс-минус и проверка на совпадение имени.
1ый вариант более устойчив и надежен поскольку избавлен от “случайных” переименований улиц, смен кладр-кодов и тому подобных государственных починов. Более того, даже если кто-то случайно/преднамеренно сотрет коды у улицы/дома, collection сохранит целостность адресации.
Подобный релейшен в джосме создается полуавтоматически, за пару десятков кликов мышкой. Могу даже подсказать, как…
В случае клад-кода на доме остается огромное кол-во ручного, человеческого труда по поддержанию подобной адресации в актуальном состоянии.
Update1:
ПыСы:
Каюсь. Пока ставил машину в гараж, размышлял, что мне так не понравилось в этой схеме. Потом сообразил. Уж очень напоминает мне это дело реляционные модели баз данных и сиквел, где есть привычка хранить иды, по которым потом в другой таблице ищутся сами объекты или новые иды и т.д. и т.п, вместо того, чтобы сразу хранить ссылки на нужные объекты, как в сетевых моделях БД.
ПыПыСы:
Челны, отчасти, были приведены, как пример, еще и потому, что без дополнительных костылей эта адресация там не заработает. Пока не будет возможность как-то указать тот факт, что номер дома по улице хранится в addr:streetnumber, а не в addr:housenumber. В случае же с релейшеном эта проблема легко обходится тегом типа numbers=addr:streetnumber…
Update2:
Но с другой стороны, проделанная работа по вписыванию зданиям кладр-кодов позволит на порядок сократить время по созданию релейшенов улиц. До одного поиска вместо трех.
Даа! Даешь релейшены для улиц!
Сейчас в OSM улицы ничем не обозначаются, как ни парадоксально (Street Map, да). Только проезжие части с указанием улицы, к которой они относятся, а также здания с адресами (каждому из которых прописана повторяющаяся пачка юникодных букв).
Для улиц я, собственно, и предложил релейшн street в свое время. :3
Это ты street предложил, какая же ты умничка)) *целует Хинда в носик)) я его как раз и использовал везде, и дома насовал тоже в отношение, как в вики было написано))
Напомню, что все улицы города Минска уже давным давно собраны в релейшены: http://www.openstreetmap.org/browse/relation/79847
Я предлагал несколько не то, что написано в вики.
Ну наконец то!
Остается Вам написать бот
Меня эта пестрость очень раздражает, неоднозначность. Жаль, что до сих пор нет строгой и ОДНОЙ системы описания улиц, куда входит перечисление отрезков линий, дома и прочие возможные полезные данные.
Нет же, у нас название стоит на каждом отрезке, отдельно на отношении. Коих и самих несколько типов - collection, street… И рендеры и конвертеры вынуждены всё это понимать.
И да - на каждый дом записана улица, и в отношении улицы записаны дома. Ужас.
Мало того, что информация дублируется, так она не защищена от искажений - в одном месте так написано, в другом эдак… В одном поменял, в другом по-старому осталось.
Причесать бы всё это в логичную и ОДНУ структуру!
Белорусский вариант существует, но у нас ему никто не следует… хотя он не плох.
Может соберемся с силами и выработаем что-то единственное?
Дайте, пожалуйста, адрес статьи, где написано, как сделать улицу релейшенами.
Может, есть смысл сделать бота, который будет по совпадению названия улицы делать релейшены?
А потом, по идее, надо выпилить названия отрезках дороги и зданиях.
И придут нубы, и будут снова вписывать названия, ибо нет поддержки в рендерах и редакторах.
Великая печаль обрушится тогда на OSM: “Как же быть?”
Одним не понравится первый вариант, другим второй. Уже сейчас не получится выработать единую систему без возражений, придется кому-то принять волевое решение принуждения к заданной системе, лол.
Чёрт, я тоже про это думаю! Я вообще считаю, что отношение должно стать основным средством описания объектов.
Для улиц и вообще для адресных элементов надо выработать какую-то систему.
Но пока я вижу проблему скорее в плохой наглядности редактирования отношений, по сравнению с точками и линиями, из-за чего ими ленятся пользоваться.
Я делаю отношение street по вики. А в белорусском варианте дома к улицам привязываются?
Да, привязываются.
http://sites.google.com/site/osmbelarus/Home/manuals/osm-manual/osm-manuals-address
Плюс этой схемы - полный адрес объекта, по ней описанного, можно восстановить, пользуясь только API. Хитрые геометрические штуки из серии “а попадают ли эти точки вея в полигон” зачастую становятся не нужны.
Помоему - хороший вариант и что хорошо весьма гибкий (это я про релейшены). А НП со сквозной нумерацией домов по стране в общем то не так уж и мало. А на счет того что придут нубы и все расставят не так - ну я нуб - во первых не обязательно что все новички будут делать неправильно, а во вторых поправить теги у домов не великая проблема.
Я тоже за адресацию исключительно при помощи релейшенов.
Обязательно будут делать неправильно. Хотя не все, разумеется, но этого никто и не утверждал.
Адресация с помощью релейшенов - это имхо утопия.
Во всяком случае, пока.
Слишком уж ненадёжная это штука.
В чём именно проявляется их ненадёжность?
В том, что рушатся от любого чиха.
И чем больше их будет, тем чаще будут рушиться.
Вопрос то в том, что cladr:code еще более ненадёжен и неустойчив. И решение вопросов адресации с помощью средств для этого не предназначенных еще большая утопия.