Москва и Московская область (обсуждение)

Просто дискуссия сильно вильнула в сторону от изначальной: основной мой вопрос был именно в наличии или отсутствии какой-то единой системы адресации.

Что же касается обязательности - то я сознательно применил оговорку - в соответствии с договоренностями. Ведь есть же договоренности о том, как рисовать дороги, как нумеровать дома. И если вы пронумеруете дом неверно - модератор откатит правку. Мне представляется разумным добавить в договоренности и обязательность тега official_status при добавлении/исправлении населенного пункта. Равно как и при добавлении / исправлении района города (для Москвы особенно актуально).

Кроме того, сейчас в некоторых районах Москвы в адресе в теге city стоит полное название района.

Зачем обязательным?
Для поиска обязательным он должен быть лишь в случае неоднозначности, и это так происходит.

Вы обнаружили не то, что ожидали. Это не бардак, а другая логика. Мне некоторые аспекты тоже не совсем нравятся, и это можно обсуждать

Ну, во-первых, представляется логичным, чтобы официально утвержденное название населенного пункта содержалось в информации, раз уж village/hamlet не имеет к нему никакого отношения.

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

В-третьих, если каждая муниципальная или административная единица будет содержать официальное название, то вы гарантированно ее найдете используя официально утвержденный порядок адресации - вам не придется каждый раз изобретать велосипед для каждого отдельного случая (столь любимый вами ОКТМО или более полная ФИАС).

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

Насчет серьезных усложнений, именно наличие ненадежных данных, а не отсутствие оных, сделает алгоритм более сложным.
Пользователь может не знать точно что там за Гадюкино - хутор, аул или посёлок.
Напишет в запросе поселок или ничего не напишет. Алгоритм без “серьезных усложнений” - выдаст отсутствие искомого, а другой найдет единственное в округе село Гадюкино.

official_name для этого и есть.

Тогда, возможно, вы сможете меня просветить, в чем заключается " другая логика" того, что у одних районов Москвы в тебе city стоит “Москва”, а у других - “район Такой-то”? Так как в моем представлении одинаковые по рангу (административному/муниципальному) объекты должны иметь одинаковый принцип наименования. Или, скажем, в чем логика того, что одни населенные пункты в Москве - suburb, а другие - village/hamlet, при том, что официально они все “Деревни” и имеют одинаковый примерно размер, муниципальный/административный уровень.

Для меня это не праздное любопытство - при текущих логических нестыковках, мне приходится выкачивать в базу geojson’ы все границы всех муниципальных/административных образований (их еще более-менее просто найти), а также всех населенных пунктов Москвы (которые уже так просто не найдешь), класть их в свою базу, присваивать им нормальные, официальные и машиночитаемые названия, и уже потом получать для каждой точки настоящий адрес. Это отнимает массу сил и времени, и если вы знаете путь, по которому я гарантированно могу найти каждый из населенных пунктов Москвы (https://data.mos.ru/classifier/7710168515-obshchemoskovskiy-klassifikator-territoriy-v-moskve-omk-005-2013-razdel-1) - буду вам действительно крайне благодарен!

Пример можно? Это про addr:city, как я понимаю?

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

Что значит “найти”?

Как раз верифицируется только официальная информация. В этом ее смыл, собственно - в верифицируемости. В возможности в любой момент обратиться к утвержденному документу. Я сейчас говорю про Москву, хотя в соответствии с законодательством оно везде одинаково. И если где-то поселки меняются на деревни и обратно - значит и официальные наименования меняются, нет тут никакой проблемы.

Именно так. Вот только сейчас пользователь не сможет найти все Гадюкино. А уж если пользователь знает как Гадюкино действительно называется - ему вообще труба, так как совершенно не факт, что кто-то вдруг решил все же добавить к Гадюкино тег с его официальным названием. И вывалится нашему бедному пользователю два десятка абсолютно одинаковых Гадюкино.

И если бы тег с официальным названием был бы обязательным, то пользователь смог бы, введя Гадюкино, увидеть в выдаче которые из них поселки, которые деревни, а которые и вовсе, скажем, районы города. Тем более, что теги village/hamlet/suburb ему такой информации не дадут.

Я честно пытаюсь понять вашу логику, но пока не могу: вы считаете, что сейчас OSM позволяет гарантированно отличать все населенные пункты друг от друга? Или все же допускаете возможность того, что эти пункты могут отличаться только географическими координатами?

А вот тут уже писали, что есть еще и official_status. И значит при поиске нам уже нужно перепроверять три поля.

вот я ввел Толстопальцево
http://nominatim.openstreetmap.org/search.php?q=%D0%A2%D0%BE%D0%BB%D1%81%D1%82%D0%BE%D0%BF%D0%B0%D0%BB%D1%8C%D1%86%D0%B5%D0%B2%D0%BE
Нажимаем “details” и смотрим что там деревня или станция.
Если мало внизу есть еще кнопка.

Не при поиске, а при подготовке к поиску, и не три, а много разных. Еще есть alt_name, old_name и варианты для разных языков name:*

Да, конечно.

Вот, например Сокол: ‘osm_id’: ‘2116527922’
А вот, скажем, Ховрино: ‘osm_id’: ‘2116527923’

То есть из Ховрино, который точка, я могу подняться в Ховрино, который район и получать все данные.
А вот из Сокола, который точка, я уже подняться к району не могу.

Именно! А все потому, что там есть официальное название. С ним можно нормально найти все. А вот без него - уже нет.

Например, с Акулово уже не так все красиво: там официальное название не указано. А одна из трех вообще в поиске не выпадает.

is_in на Соколе

  1. содержит таки ерунду, обычно там развернутей писали
  2. is_in (не is_in:*) устарел довольно уже давно. Кто-то три года назад вставил этих несколько штук. Похоже, что хотел отделить районы, которые попадают в собственно населенный пункт Москва, от тех, что не попадают (Нью-Москва).

Вот видите, это не ошибка разметки тегами name, а банальное отсутствие размечаемого.

Ну вы не ломайте сгоряча.
Поменяли границу НП, а соответствующую точку забыли?
https://www.openstreetmap.org/node/1680837265/history

Говоров действительно отдельная вещь. Но там и деревня отмечена как suburb.

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

Каюсь.

У вас странная логика, вот official_status не заполняют, а “деревня Пупсы” непременно все сразу расставят.
Нет никакого обязательства, можно вообще рисовать чистый place без какого либо названия.

Какой-такой модератор? В OSM нет модераторов, каждый может поменять что угодно.

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

В OSM есть и модераторы, и администраторы. Например, http://www.openstreetmap.org/user/TomH