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

Это дело алгоритма, если придумывать данные под алгоритм, то все проще пареной репы: загонять в данные сразу требуемый результат работы скрипта.

Представление данных не должно зависеть от модели данных, по крайней мере чем меньше они зависят тем проще их поддерживать и развивать.

Варианты ответа есть?

Что противоречит следующему:

Но есть условие достаточности входной информации. Если информации для генерации представления недостаточно, то никакой алгоритм не выдаст результат. База данных должна содержать всю необходимую информацию, а это уже накладывает ограничения на формат БД.

Грубо говоря, если мы хотим генерить адреса в виде:
квартира-дом, улица, город, кодстраны (или как там у буржуев)
улица, д. дом, кв. квартира, город, страна, индекс (как на сайте)
индекс, город, улица, д. дом, кв. квартира (по старинке)
то генератору надо хотя бы знать что из кусков адреса чем является, чтобы расставить их в нужном порядке, а не просто раскидать оные по уровням отношений.

Грубо говоря между улицей и городом есть районы, а между городом и страной есть еще районы/регионы. Необязательные, но есть.

Фактически, скрипту ничего не надо знать, кроме стартового уровня, включающего дома - улицы/квартала/комплекса. Далее он просто идет по восходящей и собирает имена в строку. Об этом я и говорил с самого начала. Т.е. берем дом, смотрим в какое отношение он включен, и пишем “$имя_отношения$, д.$номер_дома$”, далее смотрим, куда включено наше отношение, и так, пока не дойдем до конца.
Дома могут быть включены более, чем в одно отношение, и это просто обозначает, что для них есть более чем одна адресная строка.

Обратный разбор - от строки к конкретному дому несколько сложнее, но тоже реализуемо. Просто надо будет чуть поработать со строками…

Сейчас это не принципиально, я показываю пример.

Я неспроста привёл аж 3 схемы нумерации, по которым должно быть ясно, что просто по восходящей или нисходящей адрес не соберёшь, точнее соберёшь, но не все варианты. Поэтому знать, какой элемент какой, всё же бывает нужно, хотя бы основные.

Или вспомнить про сельсоветы, которые, находясь выше по иерархии, присоединяются всегда в скобках и справа, даже если порядок нисходящий.

Привёл немного в порядок мысли по адресации :slight_smile:
Несколько выводов:

  • во-первых, мы тут говорим не о почтовом адресе.
    Почтовый адрес всегда указывает на адресата (кому), без адресата это уже неправильный адрес.
    Мы же тут говорим про адреса объектов. Поэтому на почтовый адрес можно оглядываться, но упираться в него не стоит.

  • во-вторых, я всё-таки настаиваю на разделении адреса на две части - адрес населённого пункта + адрес внутри нас. пункта.
    Объекты вне нас. пунктов, в принципе, тоже можно адресовать: “кафе у 83-го километра трассы XX-YY”, “сарай для сена в 5 км на северо-восток от деревни ZZ”. Но как-то структурировать такие адреса не получится.
    К населённым пунктам можно приравнять некоторые другие объекты: садовые товарищества, детские лагеря, дома отдыха etc

  • адрес населённого пункта - это административная подчинённость этого нас. пункта.
    Исключения: для “столиц” админ. единиц можно пропускать уровень этой единицы - “Россия, г. Калуга” вместо “Россия, Калужская обл, г. Калуга”.
    И кроме редких случаев в адрес не включаются сельские поселения.

  • адрес внутри нас. пункта - тут уже вылезают все местные заморочки с кварталами, микрорайонами итд.
    С ними ещё надо разбираться.

Вот как-то так :slight_smile:

Лёш, существует множество способов адресации объекта. Есть кадастровые номера. Своя адресация строений у ЖЭКа. Многие структуры создают свою систему адресации.
Та адресация, к которой мы все привыкли - “город-улица-дом” - это всё почтовая адресация, только в несколько урезанном варианте. Этим вариантом адресации пользуются многие - милиция, налоговая, всякие -телекомы и пр. Почему? Потому, что это самый старый способ адресации (почта появилась намного раньше всяких БТИ), это, наверно, самый очевидный и удобный, с помощью аншлагов, созданных для данного типа адресации, очень легко ориентироваться на местности. И утверждать, что в ОСМ мы пытаемся внедрить какой-то мифический “другой” способ адресации глупо. Да, мы как-бы исключили почтовый индекс и да, мы не задаем (пока) конечного получателя, но в любом случае это именно почтовая адресация. И в конечном счете “потребители” карты пользоваться будут именно этой адресацией.

Ну, я не вижу смысла отдельно выделять адрес НП, и перечисленное тоже причины: адреса вне НП тоже есть, и придётся делать костыль в виде приравнивания любых скоплений домов с названием населённому пункту.

То есть универсальную схему мы получаем только до региона.

AkMeR, +сто тыщ мильонов!

Ты путаешь, это НЕ почтовая адресация.
Это то, что называется “street address”, и от “postal address” он отличается.
То, что почта ТОЖЕ этим адресом иногда пользуется, не делает его “почтовым”

Есть теги учатстники (JOSM) associatedStreet. Там в поле name написано Хользунова. Необходимо ли приписать ул. ?

Аналогичный вопрос и про addr:street

suslikk, необходимо приписать “улица …”

Wiki говорит
Для статусной части допустимы следующие сокращения:

* Допустимо сокращать только: 

    ул. (улица) 
    пер. (переулок)

Еще вопрос :slight_smile: Если дом связан с associatedStreet, то addr:street можно не задавать?

Общая вики говорит “Do not abbreviate words, except if the signs have abbreviated words and you don’t know what the full word is.”. Это же написано в русской вики “Не сокращайте слова, за исключением случаев когда сокращенные слова присутствуют на знаках и вы не знаете полного слова.”. Не вижу никаких внятных причин использовать локальное исключение.

Ну а в соглашениях об наименовании дорог много еще чего написано… Но написано это давно, и непонятно почему…

Спасибо за ответ! :slight_smile:

Пока задаем название улицы в обводе дома. Посмотри заодно более перспективное отношение street.

Уточняю - в большинстве случаев у домов собственных номеров нет, номера присваются подъездам. На самих домах таблички с номером вешаются на каждый подезд отдельно. В официальных документах используется как номер дома (читай отдельного подъезда), так и объединённые номера домов, если есть необходимостб сослаться на всё строение целиком. Например “ул. Красная, д. 62-126” При этом отдельное строение может одновременно иметь адреса с нескольких улиц, даже физически на них не располагаясь, например 5ти подездный дом может 4мя подъездами находиться на улице, допустим, Тельмана, а пятым подъездом на улице Островского, на которую он фактически и выходит. Возможно есть обратные случаи, когда все подъезды дома имеют адрес на одной уличе, хотя физически он располагается на нескольких, но я их не знаю.

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

Есть дома с комбинированной схемой нумерации - один подъезд имеет номер 66 и свою нумерацию квартир, два других подъезда имеют номер 66а и свою союбственную нумерацию квартир, сквозную для этих двух подездов.

Дополнительно хотелось бы отметить два уже виденных мною исключения
1)Сблокированне коттеджи иногда имеют единый номер дома на весь блок, а подъезд (то есть коттедж) имеет номер квартиры
2)Есть как минимум один дом, квартиры первого этажа которого имеют отдельные от подездов входы. Эти квартиры имеют номер дома, взятый от одного их подъездов и сквозную нумерацию с квартирами этого подъезда.

Резюмируя и поправляя Алексанлра:

  • у домов есть номера и они используются для адресации - в большинстве случаев это неверно
  • у подъездов нумерация сквозная по улице и они тоже используются для адресации объектов, причем иногда без номера дома - в большинстве случаев только эти номера используются для адресации, номер дома как таковой отсуствует.
  • иногда номер дома записывают как диапазон номеров подъездов, например 10-30 - в большинстве случаев это верно
  • нумерация квартир в каждом подъезде своя - в большинстве случаев это утверждение верно

Другими словами, адресация вполне укладывается в стандартные тэги. Отличие в том, что при желании можно также задать адреса отдельно для каждого подъезда. Правильно?