Иерархия административных границ страны

Геометрические вычисления, разумеется, достаточно дороги. Поэтому использовать что-то дополнительное, что сократит их объем, всегда полезно.
Допустим мы ищем, в какое поселение входит нп. Можно тупо искать попадание во все подряд.
Но если на нп написано, addr:subdistrict=Хххх сельское поселение, то можно взять его в качестве первой попытки, если угадали, а мы угадаем почти всегда, то поиск окончен.
Если addr:subdistrict размечен неверно, то диагностируем ошибку, плюем на этот addr:subdistrict и ищем среди остававшихся поселений.
Аналогично и с subarea

Вот бы придумали пространственные индексы… :slight_smile:

Давно хочу сделать плугин к osmosis, который добавляет подобные теги исходя из геометрической вложенности объектов.
Может тогда перестанут заниматься бессмысленным дублированием в исходных данных?

а давай включим в отношение города еще и все магазины в нем
наверняка кому-то будет удобнее

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

Если так имеет значение время обработки, не проще ли просто кешировать то что нужно?

Так эти отношения и можно рассматривать как способ хранения кеша. :slight_smile:

Добавил районы как subarea во всех регионах, удалив остававшиеся отношения collection и hierarchy.

Прошу, не захламляйте тег addr:* неверными значениями, а главное, тегами - это Адрес (почтовый, ну или тот, что в паспорте, в общем случае они не совпадают, но пересекаются), а не “в какой полигон входит”, т.е. если у вас адрес с subdistrict’ом (бывает 2 улицы с одинаковыми названиями в разных районах), то да, можно указать, если же нет - то используйте is_in[:], но ни как не addr:

Только не is_in.

subdistrict - это не про районы города, а про городские/сельские поселения. Внутри города - suburb, neighbourhood и т.д.

На уровнях

country/country_code
region
district
subdistrict

addr:* и is_in:* вполне эквивалентны и взаимозаменяемы, но is_in не так популярен

Не совсем, addr это именно почтовый адрес и за вхождение в территорию не отвечает, но в 99% совпадает.

Почтовый адрес - несколько неоднозначное понятие. Почта обладает интеллектом и приносит письма по адресам со всевозможными вывертами. :slight_smile:
И иногда не приносит по четким и определенным.

Хорошо, это такая хрень, что addr:country=RU не даёт гарантии, что оно находится в полигоне России, как например посольства. А уж всяких бензоколонок и аэропортов за пределами place навалом.

А вот у них, как раз, “официальный” адрес вне города. Смотрим кадастр. Там все точно знают на чьей земле стоит.

Ну и опять же, люди пишут, почта носит. ФИАС, к примеру, не различает город и городское поселение/округ. Многие люди не различают иногда райцентр и район.

А а про посольства, если оно в RU, то мы всегда можем ему построить адрес по вхождению addr:country=RU, и прислать счет за электричество, хоть королева пишет послу через addr:country=UK и Foreign Ministry

Ну и я же указал уровень эквивалентности - не здания, но муниципальные образования

Ну дак place - это и не административные границы НП, административные это boundary, так что вполне может быть, что завод, например, за пределами place’а, но в пределах города. Аналогично, может оказаться, что граница города идёт по какой-нить насыпи, но дома за ней вполне себе внутри place’а, ибо place - несколько другая сущность, так же как и автомобильный знак не является, как привило, границей НП, куда чаще, те самые пресловутые “стелы” на въезде ставятся на границе НП (потом, правда, границы могут изменяться, но постаменты остаются, но это вопрос к “протуханию”, нежели точности отображения).

А они кому-то нужны взаправду, эти subarea ? Какие утилиты их используют?

Ничего, josm борется за чистоту, скоро границах родины не будет адресных тегов.

Возник вопрос, что такое subarea для городского округа?
Это населенные пункты, как в городском поселении, или городские районы, которые есть отдельная иерархия, которая может пилить округ поперек границ НП.

Ни в городском, ни в сельском поселении никаких subarea быть не может — это уже минимальная единица. В городском округе если что-то и считать за subarea, то административные городские районы. Тем более как они теперь и муниципальными образованиями могут быть.

А НП никаким subarea чего бы то ни было быть в приципе не может.