Обсуждаем способы задать адресацию

Ну вот, сделал для примера.
http://www.openstreetmap.org/browse/relation/418770
На конкретных тегах не настаиваю, но надо с чего-то начать :slight_smile:

Ничивинипонял :frowning:

А Трубную улицу как из этого отношения вывести? И что включать в отношение street? и как понять, он 26 по Сухаревскому и 1 по Трубной или наоборот???

У меня получился такой вариант. Чем-то придется расширять отношение house, иначе сразу не понятно, куда он выведет.

Ezhick, улицу пока в отношение не собирал.
Имхо, addr:street как альтернативный вариант вполне себе имеет право на существование, там где street нет.

Основной адрес: 26/1 (а не просто 26!) по Трубной
Альтернативный адрес: 1/26 по Большому Сухаревскому

Ага, вот оно как… А можно и улицу собрать? Я просто это сейчас потащу на наш форум, обсуждать применимость для покетгисной адресации, хочется законченную картину предложения сначала внутри себя осознать… А на наглядном примере оно лучше осознается, а то я только закончил читать англоязычный документ на 128 страниц и слегка туплю :frowning:

Мда… Смерть для приезжего эти хитрые адресации. Вспоминаются поиски в Зеленограде свежепостроенного корпуса, которому достался номер новый, а место - от старого, снесенного. В результате 50 корпус стоял между 6 и 8, а весь микрорайон был пронумерован по порядку…

Ezhick, дак в street собирать веи улицы как раз перворыльно, в второ-рыльно – домики. Ты погоди пока тащить, не устоялось ничего еще. Годи до завтра))

Народ, глянул примеры ваши, пока свой сделать тоже раскочегаривался… а мне казалось в голове, пока не начал делать, что у нас два отношения-прослойки при двойной адресации – на каждый номер, нет?
Или по-Лёшиному – первый основной адрес входит напрямую, а дополнительный через отношение-прослойку? Так вроде и по-экономней получается, с точки зрения непложения сущностей… Пойду тоже покумекаю еще…

upd: ikz, у тебя кстати вей http://www.openstreetmap.org/browse/way/41909141 дважды участвует в отношении 418773:

как хауз и просто так.

Нет. Здесь три адреса - по двум проспектам и по комплексу.

Значит так, докладываюсь и я про свои измышления. Вот дом с двойным адресом. Первый адрес прописан прямо на доме, по старинке, основной, ул. Максима Горького 38/45. Этот дом участник двух отношений:

  1. Отношение type=street Максима Горького ул. (116526) (в роли house) ссылка,
  2. Отношение 418789 type=address ссылка.
    Второе отношение имеет следующие теги:

В свою очередь отношение address состоит в:
3) Отношение type=street Отношение Володарского ул. (418790) (в роли house) ссылка.

ну как?

upd: хотя я считаю, что прописывать addr:street на отношении type=address это излишество! (делал по Лёшиному в основном), потому что вполне достаточно того, что address ссылается на street, и название ТАМ.
Впрочем, как и в простом одноадресном варианте – на полигоне дома только Номер дома (addr:housenumber), а улицу (addr:street) смотри на самом отношении type=street. Так и плодить одинаковы еслова не надо, и от ошибок защита (от коллизий). Выглядит наверно свежо, но мне очень нравится. (у меня сейчас не так, но о чём-то подобном мечтаю)))

А также улиц в город, городов в области, областей в страны.

Alexandr Zeinalov, я уже говорил, что я против включения улиц в город.
На мой взгляд, с городом вопросы такие:

  1. привязка дома/участка (а не улицы!) к городу - имхо, лучше попадания в полигон сложно что-то придумать.
  2. адрес этого дома внутри города - это релейшен street или (где его нет) addr:street.

А я против того, чтобы определение принадлежности улицы городу решалось трудоёмким вычислением попадания улицы в полигон.

Это самый естественный способ, вдобавок не требующий лишних сущностей.

Это не способ, а костыль.

Нетт, это именно способ.
Причём именно этот способ давно везде применяется и вроде как почти всеми уже признан основным :slight_smile:

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

Есть условие необходимое, а есть достаточное :slight_smile: проверить дом, взяв любую попавшуюся его улицу (буде он принадлежит нескольким) и проверить ее, улицы, вхождение в полигон - условие достаточное.
Нет смысла проверять другие улицы - сильно вряд ли, что дом по одной улице торчит в одном населенном пункте, а по другой улице - в другом :slight_smile:
А так да, собрать все дороги из отношения улицы - собрать полную улицу - и проверить ее вхождение в полигон. И это никак не костыль, это вполне достаточные данные в базе. А костыль это как раз всякие is_in и прочие дополнительные и искусственные упрощалки вхождения.
upd: На самом деле, никто не запрещает навигационным программам строить внутри себя таблицы вхождений тех или иных объектов в разные образования - населенные пункты, районы и прочее - в любой системе индексов. Что бы один раз произведенный расчет наследовать какое-то время и не пересчитывать заново. Или в том же рендере считать такие таблицы скажем каждый раз с приемом в систему нового diff’a, не чаще.
А насчет сбора улиц в отношение населенного пункта я бы тоже сделал так, если бы Леша не предупредил, что так делать не надо. Хотя я и не знаю, почему:)
Эх, еще бы кто понимал такую новую систему… Если в конвертере всё заработает, наверно надо доводить пропозал до ума и дарить тем, кто заведует конфигами мапника :slight_smile:

Функциональное уравнение - это тоже способ задания функции. Но далеко не лучший.

Alexandr Zeinalov, “лучшесть” будет зависеть от способа оценки “лучшести” :slight_smile:
В нашем случае (крауд-сорсовый проект) лучшим будет самый очевидный и дубовый способ.
Надо объяснять, почему? :slight_smile:

Самый очевидный и дубовый способ - это Karlsruhe. И если чётко документировать разнесение префиксов-суффиксов у улиц в разные тэги, плюс добавить, например, кладр-код - то вычислить принадлежность АБСОЛЮТНО ЛЮБЫХ улиц можно без проблем и безо всяких отношений. Не надо нам частичных костыльных решений. Или у нас чёткая структура, или мы соглашаемся на костыли везде и разрешаем юзерам не мучиться со всеми этими тонкостями.

А теперь расскажи, как ты будешь обрабатывать Внуково и Толстопальцево. Или Старбеево-Клязьму.