You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#251 2009-06-15 19:16:31
- zgremlin
- Member
- Registered: 2008-07-31
- Posts: 332
Re: КЛАДР
Задача поиска к чему сводится? По названию города, улице и номеру дома найти дом. Сначала ищем города, потом внутри полигона или окрестности точки (города) ищем точки или полигоны с тегом билдинг и отбираем там по тегам улица и номер. Математический аппарат для поиска точек в полигоне и пересечения полигонов достаточно развит, и есть интерфейсы к БД, где этот поиск делается одним запросом.
Или тупо ищем все дома с нужным номером и улицей, потом среди них находим ближайшие к нужному городу. Тут запросов больше, но требования к БД меньше, справится и компьютер, и любая железка.
В общем, проблема поиска надуманная, и не стоит ради неё городить огород из тегов.
А теперь то же самое поподробнее:
Задача 1.
Пусть у нас есть точка или полилиния.
1. По номеру запрашиваем ее из OSM:
http://www.informationfreeway.org/api/0.6/node[id=###] или http://www.informationfreeway.org/api/0.6/way[id=###]
2...
Задача 2.
У нас есть left,top,rigth,botton.osm
Надо проиндексировать все населенные пункты, улицы и дома. Да, да, и возле прямоугольника области тоже. Нет, граница государства в прямоугольник не попала, в какой мы стране неизвестно. Нет, интернета у нас нет, просто на флешке файлик принеслии.
Last edited by zgremlin (2009-06-15 19:19:58)
Offline
#252 2009-06-15 19:19:35
- Yuri Nazarov
- Member
- Registered: 2008-04-12
- Posts: 237
Re: КЛАДР
у каждой страны своя адресная иерархия, так что по любому придётся свои теги, специфичные для России, вводить.
Есть относительно стандартная/универсальная схема, см. RFC 4119 и http://wiki.openstreetmap.org/wiki/Rela … _Addresses
Last edited by Yuri Nazarov (2009-06-15 19:25:03)
Offline
#253 2009-06-15 19:23:06
- Yuri Nazarov
- Member
- Registered: 2008-04-12
- Posts: 237
Re: КЛАДР
У меня вопрос -- под какой лицензией распространяется КЛАДР (искал, не нашел), и совместима ли она с Creative Commons Attribution-Share Alike 2.0 Generic License (http://creativecommons.org/licenses/by-sa/2.0/legalcode) и Open Database License (http://wiki.openstreetmap.org/wiki/Open … se_License) ?
Offline
#254 2009-06-15 19:35:48
- Bedouin
- Member
- From: Novgorod
- Registered: 2009-05-27
- Posts: 167
Re: КЛАДР
У меня вопрос -- под какой лицензией распространяется КЛАДР
Ща и Кладр окажется нелицензированным, кому-то придётся откатывать ![]()
Offline
#255 2009-06-15 19:41:09
- Ilis
- Member

- From: Екатеринбург
- Registered: 2009-05-24
- Posts: 5,970
Re: КЛАДР
Ilis wrote:В общем, проблема поиска надуманная, и не стоит ради неё городить огород из тегов.
Мда. Рекомендую попробовать на практике написание поиска в ОСМ по любому из предложенных алгоритмов
Ха-ха, как смешно. Если бы мне это было надо, я бы думал именно в этом направлении, а не плодил бы теги. Планета=Земля, Система=Солнечная, Галактика=Млечный_путь ещё впишите тогда, а то вдруг напейсатель программы алгоритмов работы с точками не знает где подглядеть, и
Нет, интернета у нас нет, просто на флешке файлик принеслии.
Offline
#256 2009-06-15 20:19:35
- zgremlin
- Member
- Registered: 2008-07-31
- Posts: 332
Re: КЛАДР
Yuri Nazarov wrote:У меня вопрос -- под какой лицензией распространяется КЛАДР
Ща и Кладр окажется нелицензированным, кому-то придётся откатывать
1. Что интересно, КЛАДР "откатывается" совершенно безпроблемно - просто удаляюся все cladr:*.
2. Лицензия КЛАДР очень интересна, и не менее интересна лицензия данных КАДАСТР.
Определенная надежду дает то, что эти данные фактически являются "первоисточником" и с точки зрения лицензии должны иметь тот же статус, что и закон. Т.е. это должен быть набор фактов (которые, как известно, не могут быть предметов авторского права), причем не несущий в себе элементов творчества (от силы некоторые тонкости структуры БД). Кроме того заказчиком выступало государство, т.е. налогоплательщики и данные не содержат какой-либо тайны (иначе не были бы выложены в свободном доступе).
3. В OSM попал не КЛАДР, а некоторые данные из него, что тоже может иметь отличия по ограничения.
Offline
#257 2009-06-15 21:30:42
- zgremlin
- Member
- Registered: 2008-07-31
- Posts: 332
Re: КЛАДР
liosha wrote:у каждой страны своя адресная иерархия, так что по любому придётся свои теги, специфичные для России, вводить.
Есть относительно стандартная/универсальная схема, см. RFC 4119 и http://wiki.openstreetmap.org/wiki/Rela … _Addresses
На нее тоже в свое время посмотрели и увидели следующие недостатки:
1. Число членов в отношении не может быть больше 2000 (по крайней мере не рекомендуется) - в Москве 3656 улиц (по КЛАДР)
2. У отношений нет географической привязки, т.е. получить отношение можно только зная его id. И при этом не в объекте указана ссылка на отношение, а наоборот. Т.е. проблемы как в том чтобы по объекту найти адрес (имея id объекта не узнаешь id его адреса - впрочем как-то же JOSM выдерживает запреты поворотов...так что может и здесь небезнадежно), так и в том, чтобы по стране определить ее области и т.д. (аналогично)
3. Работа с отношениями во всех программах сделана довольно... в общем не до конца проработана.
4. Нормальная работа с этой системо без поддержки со стороны программных средств невозможна.
Offline
#258 2009-06-15 23:58:44
- wildMan
- Member

- From: Minsk
- Registered: 2008-03-05
- Posts: 509
Re: КЛАДР
1. Число членов в отношении не может быть больше 2000 (по крайней мере не рекомендуется)
устарело. в апи 0.6 ситуация изменилась. это раз.
во вторых вы невнимательно читали про Postal_Addresses
там восходящая схема. т.е. не город хранит "у меня стотыщпицот улиц", а улица хранит "я отношусь к городу ХХХХ"
2. У отношений нет географической привязки, т.е. получить отношение можно только зная его id. И при этом не в объекте указана ссылка на отношение, а наоборот. Т.е. проблемы как в том чтобы по объекту найти адрес (имея id объекта не узнаешь id его адреса - впрочем как-то же JOSM выдерживает запреты поворотов...так что может и здесь небезнадежно), так и в том, чтобы по стране определить ее области и т.д. (аналогично)
читать http://wiki.openstreetmap.org/wiki/OSM_ … ersion_0.6 в части касающейся "Relations for Element"
3. Работа с отношениями во всех программах сделана довольно... в общем не до конца проработана.
вот с этим полностью согласен. тут к сожалению пока всё не очень радостно. хотя в josm уже можно работать не сильно через анус.
4. Нормальная работа с этой системо без поддержки со стороны программных средств невозможна.
непонял фразы. а с какой системой можно работать без поддержки программных средств?
как бы то нибыло нормальную поддержку адесации без релейшенов не реализовать. все другие схемы гораздо хуже.
не есть пару проблем которые вы почему то не назвали:
1. поддержание системы в валидном состоянии. нужны боты типа кладровского которые будут отслеживать и поддерживать целостность структуры релейшенов т.к. в отличие от физических объектов тут нарушения визуально не заметны
2. в текущей схеме предполагается что в релейшене будет вся адресная информация + что релейшен будет создан для каждого элемента адресной сети. т.е. для каждого здания. а это значит что общий объём данных будет солидно больше. в минске по скромным подсчетам от 20000 домов. соответственно добавление адресной привязки только для одной столицы беларуси увеличит количество релейшенов в базе осм на треть минимум (сейчас текущий номер релейшена помоему в пределах 80000)
оптимальным было бы слегка доработать схему. например до уровня иерархии выше дома оставить без изменений, но все дома одной улицы хранить в одном релейшене улицы. это сильно разгрузит базу и немного упростит работу по созданию и контролю целостности. но это ещё надо обдумывать...
Last edited by wildMan (2009-06-15 23:59:11)
--
OSMF BY Team
Offline
#259 2009-06-16 07:22:39
- Ezhick
- Member

- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Re: КЛАДР
Подождите, почему для каждого дома отдельный релейшен? Создается общий релейшен для улицы, дома нумеруются через addr:housenumber и записываются в него как член со статусом house
Вот как тут ,например:
http://www.openstreetmap.org/edit?lat=5 … 19&zoom=15
Offline
#260 2009-06-16 07:44:40
- KekcuHa
- Member

- From: Moscow
- Registered: 2008-05-26
- Posts: 607
- Website
Re: КЛАДР
Подождите, почему для каждого дома отдельный релейшен? Создается общий релейшен для улицы, дома нумеруются через addr:housenumber и записываются в него как член со статусом house
Вот как тут ,например:
http://www.openstreetmap.org/edit?lat=5 … 19&zoom=15
Потому что это разнородные системы адресации - первая схема: почтовые адреса, вторая - адресация домов на улице. Соответственно, конвертер должен будет поддерживать обе.
Прошу модераторов почистить тему - вопросы адресации выделить в отдельную ветку.
Offline
#261 2009-06-16 08:15:58
- Ezhick
- Member

- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Re: КЛАДР
Ilis wrote:В общем, проблема поиска надуманная, и не стоит ради неё городить огород из тегов.
Мда. Рекомендую попробовать на практике написание поиска в ОСМ по любому из предложенных алгоритмов
Плюсмильён.
И буду благодарен за научение как сделать один запрос к базе mysql, который позволит отобрать все точки внутри полигона из, хотя бы, 4 линий. Ну или хотя бы выяснить, внутри полигона точка или вне его.
Offline
#262 2009-06-16 08:49:35
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: КЛАДР
буду благодарен за научение как сделать один запрос к базе mysql, который позволит отобрать все точки внутри полигона из, хотя бы, 4 линий. Ну или хотя бы выяснить, внутри полигона точка или вне его.
Хранимую процедуру забабахать ![]()
Offline
#263 2009-06-16 09:22:52
- Ilis
- Member

- From: Екатеринбург
- Registered: 2009-05-24
- Posts: 5,970
Re: КЛАДР
И буду благодарен за научение как сделать один запрос к базе mysql, который позволит отобрать все точки внутри полигона из, хотя бы, 4 линий. Ну или хотя бы выяснить, внутри полигона точка или вне его.
Для mysql был предложен второй вариант: отобрать все улицы или дома по названию-номеру, потом посчитать от каждого расстояние до заданного города и выбрать минимальное.
Offline
#264 2009-06-16 09:35:18
- coolkaas
- Member

- From: RU, Penza
- Registered: 2009-05-28
- Posts: 2,391
Re: КЛАДР
Вот как тут ,например:
Тыкаю в дом, addr:street=Авангардная Улица, у дома релейшн associatedStreet. Его name=Флотская ул.
%)
Чё-т я не понял..
Offline
#265 2009-06-16 09:38:48
- liosha
- Member

- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: КЛАДР
ага, и полмосквы в химках окажется
Offline
#266 2009-06-16 09:48:40
- Ezhick
- Member

- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Re: КЛАДР
Ezhick wrote:буду благодарен за научение как сделать один запрос к базе mysql, который позволит отобрать все точки внутри полигона из, хотя бы, 4 линий. Ну или хотя бы выяснить, внутри полигона точка или вне его.
Хранимую процедуру забабахать
Текст запроса в студию.
Offline
#267 2009-06-16 09:49:40
- Ezhick
- Member

- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Re: КЛАДР
Вот как тут ,например:
Тыкаю в дом, addr:street=Авангардная Улица, у дома релейшн associatedStreet. Его name=Флотская ул.
%)
Чё-т я не понял..
Видать ошибка, посмотрю потом.
Offline
#268 2009-06-16 09:51:56
- Ezhick
- Member

- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Re: КЛАДР
Для mysql был предложен второй вариант: отобрать все улицы или дома по названию-номеру, потом посчитать от каждого расстояние до заданного города и выбрать минимальное.
Супер. Точность - офигительная. Не подходит даже для круглых и квадратных городов, а уж для полигона с 1000+ вершин и нереальной формой - и говорить нечего. Вам не смешно это предлагать?
UPD. Сорри, подумал и понял, что для круглых таки подходит...
Last edited by Ezhick (2009-06-16 10:11:26)
Offline
#269 2009-06-16 10:25:09
- AkMeR
- Member

- From: Samara
- Registered: 2008-02-27
- Posts: 1,158
Re: КЛАДР
Прошу модераторов почистить тему - вопросы адресации выделить в отдельную ветку.
Нету здесь split`а. Выделить в отдельную тему нельзя. Только руками все переносить.
Offline
#270 2009-06-16 10:25:57
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: КЛАДР
Текст запроса в студию.
Только в ответ на предоставленную тестовую базу ![]()
Offline
#271 2009-06-16 11:04:27
- Ezhick
- Member

- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Re: КЛАДР
Тестовой нет, целая весит слишком дофига... Могу сделать дамп структуры и некоторого количества записей...
Offline
#272 2009-06-16 11:46:33
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: КЛАДР
Какая польза будет от написания Х.П. для вашей базы сообществу Osm?
Offline
#273 2009-06-16 11:59:50
- Ezhick
- Member

- From: Moscow
- Registered: 2008-10-08
- Posts: 2,508
- Website
Re: КЛАДР
Если эта хп будет работать быстрее, чем используемый Кексиной и мною алгоритм проверки нахождения точки внутри полигона (алгоритм проверки по лучу из точки), то польза будет очень понятная - и кладр.бот будет работать быстрее, и разрабатываемый мною инструмент для релейшенов тоже будет работать быстрее. Сейчас на анализ всех точек РФ на принадлежность жалким 100 полигонам уходит уже много времени. С каждым новым узлом в полигоне, не говоря уж о новом полигоне, время обработки растет. Да, оптимизация позволила поднять мне скорость обработки до 700-800 точек в секунду, но точек и полигонов все больше и больше...
Учитывая, что речь идет о базе, построенной по стандартной для осм схеме, то любые наработки для нее могут оказаться полезными сообществу.
Offline
#274 2009-06-16 12:20:02
- KekcuHa
- Member

- From: Moscow
- Registered: 2008-05-26
- Posts: 607
- Website
Re: КЛАДР
Я сомневаюсь что такую процедуру (определение в полигоне точка или нет) можно выполнить на mySQL.
Хотя с мускулом я знаком очень поверхностно.
Offline
#275 2009-06-16 12:43:16
- Ivan Komarov
- Member

- Registered: 2008-10-02
- Posts: 1,050
Re: КЛАДР
Слишком уж неформализованная задача. Мне, прежде всего, неясны условия участия в вашем проекте, да и не совсем понятно, что он и себя представляет в принципе и каковы его цели(может, есть описание? мне оно на глаза не попалось).
По конкретной задачке. Каков нынешний алгоритм обработки? Точки по одной выкачиваются и проверяются на принадлежность полигону? Сколько точек требуется обработать? Какова, в конце концов, конечная цель этих проверок?
Last edited by Ivan Komarov (2009-06-16 12:43:48)
Offline