Опять же геморрой будет, если делать точно по этой схеме, в работе с рилейшнами - тут опять вложенные рилейшны, плюс каждый рилейшн надо привязывать к какому-нибудь физическому объекту, а то потом ты его больше никогда не достанешь автоматом - только руками. Плюс этой схеме не хватает наглядности - попробуй вспомни, что означают эти a0, a1 и т.д. Надо делать пресеты и дорабатывать жосм, а потом уже обсуждать ее повсеместное использование. Хотя потенциал в ней большой, это без сомнения. Но вот “дуракоустойчивость”…
Я могу эту схему добавить в своего бота cladr2osm, там где кладры присвоились будут созданы и эти релейшены.
И вообще, я не уверен что эта схема для ручного редактирования, лучше это все роботу скармливать.
меня ранее испугало в схеме с релейшенами не это.
сейчас по судя по Id всего на карте около 70 тыр релейшенов
если добавть например РБ+области+районы+наспункты+улицы минска получится ещё тысяч 40
не говоря уже о том что по этой схеме надо создать отдельный релейшен для каждого здания
Кто-нибудь задумывался “как это будет по-русски”?
Я вижу примерно так:
a1 Регион: Москва (7700000000000)
a2 Район: Москва (7700000000000)
a3 Город: Зеленоград город (7700000200000)
a4 Населенный пункт: Алабушево поселок (7700000200700)
a5 Район: Не используется (нет доступного источника информации по России)
a6 Улица: Колхозная (77000002007151200)
sts Статусная часть улицы: улица
hno Номер дома, числовая часть: 5
hns Номер дома, буквенная часть: к2
Один из недостаткой данной схемы - это то, что потребуется многопроходность (скорее всего хватит двух проходов). Но это же вылезет для почти всех других схем адресации. BTW, тут можно “сжульничать” примерно так, как это делает TeX: писать в конце прохода уточненную информацию в файл, а при очередном прогоне предзагружать ее оттуда - тогда программе не понадобится разного поведения при разных проходах, можно будет использовать несколько устаревшую информацию от предыдущего конвертирования… плюс (что может оказаться иногда очень полезно - можно разделять эту информацию между фрагментами карты, если она делается из нескольких кусков).
Кстати можно и модифицировать эту идею - вместо (а скорее в дополнение к) релейшина использовать физический объект (area, way, node) более высокого уровня.
Так не понадобится плодить миллионов отношений (да еще и взаимозависимых) и появится привязка к физическому объекту (и к координатам).
Дуракоустройчивость тем выше, чем проще метод или инструмент. Не зря же АК (Автомат Калашникова) по миру разбежался…
Автоматизировать то можно, но только как автоматизируешь определение номеров домов на карте? Перед этим придется использовать какую то промежуточную схему нумерации, которую потом после робота куда-нибудь девать…
После последней оптимизации он по всей России с учетом полной перепроверки всех улиц за полтора часа пробегает
Кста, Самару еще рисовать и рисовать - смотри на osm.tesoro-shop.ru список ненайденых (несопоставленых) улиц.
ИМХО вложенные рилейшны создают собственную реляционную БД поверх уже
существующей, при том что у нее самой и при более простой структуре много проблем.
Так скоро без валидатора и многопроходного анализа вообще будет ничего не
поправить…
Рисовать то конечно надо, но с уличной сетью у меня все в должно быть норме. Я как раз спросить хотел - почемуто робот не схватил большинство улиц… По какому критерию они сличаются?
Вроде бы добил поиск по улицам до вменяемого состояния.
Заодно исправил баг, из-за которого мапсорс выдавал ошибку при загрузке карт в прибор.
Теперь для определения принадлежности улицы городу нужен замкнутый полигон с тегами place=city/town и name (или place_name). Дороги внутри полигонов считаются улицами этого города, дороги вне - не индексируются.
liosha, о поддержке релейшенов не думал? объединять границу даже обл.центров в один полигон… не говоря уж о более крупных городах. бррр. мы потиху переводим на релейшены такого вида - http://www.openstreetmap.org/browse/relation/59195
но с ними проблема в том, что их целостность не поддерживается.
соответственно, запросто может получиться, что часть веев будут отсутствовать.
так что я в этом случае за полигоны