Коль скоро есть возможность определить уровень в адресной классификации, отдельные роли для чего бы то ни было не нужны. Можно, например, ввести общую роль (скажем, site) и разрешить ей сылаться либо на узел/линию, либо на отношение site или street.
ikz, не соглашусь. Только твоя схема требует жесткой привязки
номер дома по ул1 - тэг addr:streetnumber
номер дома по ул2 - тэг addr:streetnumber(что-то еще)
Такая схема, в которой в отношении дается ссылка на ОПРЕДЕЛЕННЫЙ ТЭГ, абсолютно не рабочая с угловыми зданиями.
В параллельной теме dkiselev уже про это написал.
Необходимо каждой улице выделить какой-то тэг
Из-за одного углового дома, надо дублировать тэги addr:streetnumber во все дома, которые относятся к этой улице
На одном перекрестке стоят 2 здания, первое имеет адрес 150/1, второе - 2/151
Пересекаются 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ой комплекс”, в которые объеденены дома, для удобства оперирования, но название которого не упоминается в адресе.
В Челнах каждый дом имеет два адреса: по комплексу (которым, в основном, все и пользуются) и по улице. Попробуем это вписать в теги и отношения.
Допустим, дом 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, до этой схемы мы не дойдём, потому что она неправильная.
Тут многим понравилось слово “костыль”, так вот она именно он и есть. В таком виде она предназначена только чтобы обойти ограничения структуры данных OSM - а именно размер релейшена и отсутствия дополнительных параметров у ролей.
Никаких других плюсов у адресации “снизу” нет, зато она плодит кучу виртуальных объектов.
AkMeR, ну насчет is_in тут уже ломали копья. Это натуральный костыль со своей кучей ограничений… И самая неприятная - навигация по дереву адреса возможна только в одну сторону. А ткнув в лубой узел невозможно понять, сколько в него включено членов.
И в чем спорен момент number=addr:streetnumber? Выше я же объяснял как это используется. Это тривиальная макроподстановка и в любом скриптовом языке выполняется один оператором с минимальными затратами машинного времени. Да, это тоже костыль, но он позволит избежать излишнего распространения адресных элементов.
P.S. Вот так и рождается “стройная система костылей и подпорок”…
А не пущают
Это в чатзилле.
[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!
Напротив, объектов ровно столько, сколько нужно. По одному релейшну на улицу. И по одной ссылке на город. При включении сверху вниз расходы практически такие же.