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

Коль скоро есть возможность определить уровень в адресной классификации, отдельные роли для чего бы то ни было не нужны. Можно, например, ввести общую роль (скажем, site) и разрешить ей сылаться либо на узел/линию, либо на отношение site или street.

неучитывает housename :slight_smile:

Я бы добавил: вообще на всё, у чего есть name. В том числе, к примеру, на мультиполигон и маршрут.

Копипаста белорусского:

Вот тут полный вариант приведён именно в address:a6.

ikz, не соглашусь. Только твоя схема требует жесткой привязки


номер дома по ул1 - тэг addr:streetnumber
номер дома по ул2 - тэг addr:streetnumber(что-то еще)

Такая схема, в которой в отношении дается ссылка на ОПРЕДЕЛЕННЫЙ ТЭГ, абсолютно не рабочая с угловыми зданиями.
В параллельной теме dkiselev уже про это написал.

  1. Необходимо каждой улице выделить какой-то тэг
  2. Из-за одного углового дома, надо дублировать тэги addr:streetnumber во все дома, которые относятся к этой улице
  3. На одном перекрестке стоят 2 здания, первое имеет адрес 150/1, второе - 2/151
  4. Пересекаются 3 улицы, 2 ссылаются на addr:housenumber, 1 на streetnumber. Одну из первых двух надо уводить на новый уровень streetnumber2 вместе со всеми ее домами.

Это будет супер головоломка! Действительно эта схема работает только для непересекающихся адресаций. Т.е. улицы-районы, улицы-город, районы-город.

Vovanium
я задал вопрос об этом Kompza и он мне сказал, что по факту используется name. Это ж черновик, к тому же ещё и не без глюков. Там ещё и для address:type невнятные значения описаны, не такие, какие используются в жизни.

physiocrat, товарищ dkiselev не понял схемы. Не стоит повторять его ошибки. Для Челнов номера по улице зашиты в addr:streetnumber, по комплексу в addr:housenumber. Никаких housenumber1/2/3 не используется.
Для угловых домов, в моей схеме, предлагается тот же самый способ, что и в других схемах - промежуточное отношение house с номером дома. Как именно оно будет оформлено, type=house или type=address+address=house - вопрос второстепенный.
Где-то на 3-4 странице той темы я приводил пример углового дома в НЧ, с тройной адресацией. 7/06=Московский, 87=Дружбы народов, 6.
Если есть вопросы по схеме, лучше их задать (в той теме), а не домысливать.

Update:
Не вопрос, я могу убрать из предложения место про numbers=addr:housenumber. Но вместе с копеечной экономией процессорного времени в конвертерах я получу кучу геморроя и по одному, совершенно лишнему, отношению house на каждый дом в Челнах.

Логическое или территориальное объединение адресных элементов в группу, название которой не включается в итоговый адрес. Во втором моем примере есть locality “7ой комплекс”, в которые объеденены дома, для удобства оперирования, но название которого не упоминается в адресе.

physiocrat, dkiselev, разъясняю предложенную схему.

В Челнах каждый дом имеет два адреса: по комплексу (которым, в основном, все и пользуются) и по улице. Попробуем это вписать в теги и отношения.
Допустим, дом 7/08, он же б-р 60 лет Октября, 2. Теги и отношения вписанные на строение в данный момент просьба не рассматривать. Почтовые адреса выглядят как 7/08, Новый город, Наб.Челны, РТ, Россия и б-р 60 лет Октября, д.2, Наб.Челны, РТ, Россия. Для сокращения текста РТ, Россия пока не буду вписывать.
Так сложилось, что основной адрес вписывается в addr:housenumber. Итак,
Полигон building=yes+addr:housenumber=7/08 включаем в
отношение type=address+name=Новый город включаем в
отношение type=address+name=Набережные Челны.
Теперь надо прописать второй адрес, по улице:
Полигон building=yes+addr:housenumber=7/08 включаем в (т.к. addr:housenumber уже занято мы создаем промежуточный house)
отношение type=house+addr:housenumber=2 включаем в
отношение type=address+name=б-р 60 лет Октября включаем в
отношение type=address+name=Набережные Челны.
И такая канитель будет для каждого дома в Челнах. Почти, т.к. в субурбах, частным домам, адрес по комплексу не присваивается.
Весело? Мне тоже.

Избавится от этого легко, надо только вложить номер дома по улице в полигон.
Полигон building=yes+addr:housenumber=7/08+addr:streetnumber=2 включаем в
отношение type=address+name=Новый город включаем в
отношение type=address+name=Набережные Челны.
Здесь ничего не изменилось.
Полигон building=yes+addr:housenumber=7/08+addr:streetnumber=2 включаем в
отношение type=address+name=б-р 60 лет Октября+numbers=addr:streetnumber включаем в
отношение type=address+name=Набережные Челны.
А здесь сократили одно отношение добавив всего один тег на улицу.

Теперь рассмотрим еще более веселую ситуацию - тройной адрес.
Возьмем дом 7/06, он же Московский пр.87, он же пр.Дружбы Народов, 6.
Полигон building=yes+addr:housenumber=7/06+add:streetnumber=87 включаем в
отношение type=address+name=Новый город включаем в
отношение type=address+name=Набережные Челны.
Адрес по Московскому пр:
Полигон building=yes+addr:housenumber=7/06+add:streetnumber=87 включаем в
отношение type=address+name=Московский проспект+numbers=addr:streetnumber включаем в
отношение type=address+name=Набережные Челны.
И финальный аккорд - адрес по Дружбе народов:
Полигон building=yes+addr:housenumber=7/06+add:streetnumber=87 включаем в
отношение type=house+addr:streetnumber=6 включаем в
отношение type=address+name=проспект Дружбы народов+numbers=addr:streetnumber включаем в
отношение type=address+name=Набережные Челны.
Т.е. здесь схема полностью аналогична тому, что писал liosha.

Где здесь можно было найти addr:housenumber2 или addr:streetnumber2?

А теперь о преимуществе.
Кол-во домов или улиц может легко перевалить за 2000 и собрать адресное дерево не получится - выпадут куски. Кол-во домов в Челнах превышает 2000 и собрать их все в отношение “Новый город” не удастся. И для этого я предлагал “виртуальные” группы:
Полигон building=yes+addr:housenumber=7/08+addr:streetnumber=2 включаем в
отношение type=address+name=7ой комплекс+nameused=no включаем в
отношение type=address+name=Новый город включаем в
отношение type=address+name=Набережные Челны.
Собрав таким образом дома в группы (в данном случае по территорриальному признаку), мне уже не надо собирать в отношение “Новый город” все 2000+ домов, а достаточно собрать 60+ комплексов, что проще, быстрее и поддается визуальному контролю.

Сходу - принципы выбора виртуальных групп? Я выберу Северо-западный округ Мск, мой сосед выберет район Хорошево-Мневники. Да, группа на то и виртуальная, что это не создаст проблем для конвертера - он ее просто пропустит, но задвоение сущностей нарисуется однозначно.

Ezhick, да любой удобный. Проще всего по территории. Hint: можно же и виртуальные группы собрать в точно-такую же виртуальную.
Насколько я понимаю, Хорошево-Мневники входят в СЗ округ?
Кста, а можно пример почтового адреса из Хорошево-Мневники?

2 ikz.
В схеме “от wildMan`а” есть более корректный способ обойти ограничение на количество членов в релейшне.
При этом, там нет очень спорного numbers=addr:streetnumber.

Мне вот интересно, через сколько итераций доработки подойдем к схеме “от wildMan`а” и начнем уже обсуждать её

AkMeR, до этой схемы мы не дойдём, потому что она неправильная. :slight_smile:
Тут многим понравилось слово “костыль”, так вот она именно он и есть. В таком виде она предназначена только чтобы обойти ограничения структуры данных OSM - а именно размер релейшена и отсутствия дополнительных параметров у ролей.
Никаких других плюсов у адресации “снизу” нет, зато она плодит кучу виртуальных объектов.

AkMeR, ну насчет is_in тут уже ломали копья. Это натуральный костыль со своей кучей ограничений… И самая неприятная - навигация по дереву адреса возможна только в одну сторону. А ткнув в лубой узел невозможно понять, сколько в него включено членов.

И в чем спорен момент number=addr:streetnumber? Выше я же объяснял как это используется. Это тривиальная макроподстановка и в любом скриптовом языке выполняется один оператором с минимальными затратами машинного времени. Да, это тоже костыль, но он позволит избежать излишнего распространения адресных элементов.

P.S. Вот так и рождается “стройная система костылей и подпорок”…

2 ikz
Айда в IRC?
is_in не больше костыль, чем numbers=addr:streetnumber.

Offtopic on!

А не пущают :frowning:
Это в чатзилле.
[INFO] Connecting to irc://irc.oftc.net/ (irc://irc.oftc.net/)… [Cancel]
=== *** Looking up your hostname…
=== *** Checking Ident
=== *** Couldn’t look up your hostname
=== *** No Ident response
=== *** Banned autokilled: This host may be infected. Mail support@oftc.net with questions. BOPM (2010-03-02 06:37:30)
[ERROR] Closing Link: 78.138.169.129 (Banned)
[ERROR] Connection to irc://irc.oftc.net/ (irc://irc.oftc.net/) closed. [Help] Reconnecting in 1 minute. [Cancel]
Это в веб-интерфейсе.
*** Access Denied: Found in DNS black list dnsbl.dronebl.org (your IP is 78.138.169.129, result: 127.0.0.3)
Offtopic off!

http://irc.openstreetmap.org/

Да с адресами там все просто - 123103, РФ, г. Москва, ул. Живописная, дом 5. Ни СЗАО, ни ХМ в адрес не входят.

Напротив, объектов ровно столько, сколько нужно. По одному релейшну на улицу. И по одной ссылке на город. При включении сверху вниз расходы практически такие же.