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

Какая разница как писать адрес на почтовом конверте. Не об этом же речь. Давайте все-же к адресации вернемся.

На самом деле, то, как писать адрес имеет прямое отношение, потому что по адресной информации кому-то придётся писать алгоритм генерации того самого адреса.

Чтобы вернуться, надо знать, куда возвращаться. Для начала надо решить, какую адресацию мы пытаемся задать.

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

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

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

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

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

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

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

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

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

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

Я неспроста привёл аж 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: