Ну это уже будет немного другая задача. Не слепить адрес для некоторых домиков (к примеру для рассылки), а для всех,
вот тут опять потеря времени, смотреть что за домики туда попадают. Причем большинство домиков города в эту промзону явно не попадут, но проверять придется.
Ну тогда хотелось бы статистика, на 100%-200% это будешь дольше если работать сразу с обрезкой области. А то может тут вопрос 5 минут. Врочем всегда остаётся вариант, дёшево и сердито на такие тонкости забить
Я считаю, что place и street надо поменять местами.
addr:suburb
addr:street
addr:place
Это даст возможность адресовать наиболее нестандартные элементы планировки, когда территория приписана к улице, а не наоборот(всякие дачи могут быть). При этом сохраняя suburb для территорий между населённым пунктом и улицей.
При этом addr:place не подставлять как addr:city(и, возможно, как addr:suburb), а брать только явно проставленный, аналогично addr:street. В случае, если addr:place совпадает с addr:city, полученным на этапе 2 - этап 3 пропускается.
При отсутствии и addp:place и addr:street адрес считается неполностью заполненным. В качестве временного решения может применяться:
плюс ближайшая улица, если не нашлось ни одного place.
А может не применяться и дома, не имеющие ни одного адресного тэга кроме дома являются неопределёнными.
Вот это поддерживаю. Не надо ничего выдумыватьподставлять в адрес, если он не задан явно и конкретно. Это надо считать ошибкой или неполнотой данных.
Подстановка разумна лишь в случае с «высокоиерархичными» границами (страна, область, район, город), когда очевидны обязательное вхождение и «адресная приписка» объекта к/по данным административным единицам.
Со всякими «микроадминистративными» и т. п. экзотическими адм. единицами такая подстановка неуместна и будет вносить нелепицу.
Придуманный/додуманный (в совершенно неочевидном случае) адрес — большее зло, чем его отсутствие, ибо создаётся ложное впечатление, что он есть и «всё хорошо», и ничего менять не надо.
Объясни в чём зло если в адрес будет добавлен например suburb, наоборот это даст представление в какой части города он находится, даже если не знаешь конкретную улицу.
Т.е. это как в большом городе указать не главпочтампа, а конкретное почтовое отделение, которое носит почту в дом.
В том, что создаёт ложное ощущение будто по этому адресу можно найти дом.
Типа “Московская область, г. Балашиха, мкр. Салтыковка, д. 3”, а там полторы сотни улиц и наверняка хотя бы на половине есть дом 3.
В тоже время адрес “Московская область, г. Балашиха, мкр. Дзержинского, д. 3” вполне однозначен.
И для того, чтобы обозначить полноту второго адреса и неполноту первого я и предлагаю на втором указывать addr:place, а первый в отсутствии addr:place и addr:street считать неполным.
Можно и так сказать. Но ведь “считать/не считать полным” - дело валидатора.
Программе, которая просто строит адрес, это не должно быть помехой. Нет ни того, ни другого - значит дом адресуется по деревне и поехали дальше.
Я в основном обсуждаю не как должна строить программа, а как должен заносить маппер. И пытаюсь аргументировать что маппер должен указывать addr:place как признак того, что дом адресуется по территории и ничего - если он не знает по чему адресуется дом.
В случае же
с чего всё началось, мы не знаем знал маппер, что дом адресуется по территории, или не знал по чему адресуется дом.
А если нет деревни и у нас дом addr:housenumber=35 стоит посреди облцентра? А если ещё в suburb не попадает?
“Why doesn’t Nominatim process addr:* tags on buildings”
Это ещё актуально для Nominatim?
Есть причины для этого?
Мы можем написать программу osm2osm готорая будет приписывать сколько угодно is_in/addr: тегов автоматом используя PostGiS/что угодно если какие-то программы вдруг не работают из-за этого.
Мне кажется что повторяющиеся теги нужно объединять на ближайшем населённом пункте. Как wowik сказал, не бывает такого что населённый пункт - необязательный.
Причина простая - населённый пункт один, домов в нём - тысячи, десятки тысяч.
Вместо требования правильного тегирования каждого дома (их десятки тысяч), я предлагаю тегировать только один объект - населённый пункт со всеми общими тегами.
Что же касается частей адреса, которые находятся межу “населённый пункт” и “отдельный дом”:
НП отдельный relation/way
relation/way place=* до-тегируются addr:place=* или addr:suburb=* или другмими однороными тегми где это необходимо. Речь идёт о 3 уровнях поселений suburb/neighbourhood (забыл 3).
Количество объектов с площадной адресацией значительно (процент), но не затрагивает каждый простой случай (addr:street + addr:housenumber) на доме для остальных больших процентов будет работать НП + два тега на доме (а то и один housenumber с Украинской схемой).
place=city / place=town / place=village объекты должны тегироваться всеми подходящими addr:* тегами.
Для скорости обработки (вместо тысяч домов, вместо 5-6 уровней от страны до деревни)
Для простоты обозначения (ошибки только в одном объекте уровня place=city / place=town / place=village)
Для простоты исправлений (один объект и валидация только одного объекта, а не тысяч или нескольких уровней)
Как уже было сказано, минусов - нет если первые 5-6 уровней от стран тегировать (предпочтительно) или обрабатывать при выгрузке (не предпочтительно).
addr:street=no должен значить что он должен значить “названия улицы нет”, а не “адресация по площади есть”. Конкурс самых неочевидных тегов не нужно устраивать, палкой никто не гонит вообще, а вот проблем с программами потом с полна огребём.
Это всплывало в разговорах несколько лет назад, как попытка вогнать костыль “не адресуется по улице”. Было отметено достаточно быстро, до пропозалов и в вики не дошло.
AFAIK is_in использовалось в эпоху, когда не было границ. И таким образом использование is_in оправдано, для того, чтобы указать принадлежность к вышестоящей территориальной единице которую не можешь описать (как деревни к району, так и, допустим, острова к морю). И ни для чего больше. Дублировать туда имеющуюся геометрию (а тем более полагаться на это) мне кажется несколько бессмысленным.
Населённый пункт может и не бывает, а вот единица территориального планирования (e.g. микрорайон) может и быть необязательной. В то же время не так очевидно провести границу между этими двумя понятиями, особенно в случае, например, деревни в составе города… Можно, конечно, ввести некий список place=* в сочетании с admin_level=* … но, опять же, это мне кажется тем местом где новичку будет очень легко запутаться.
Поэтому мне кажется более логичным идти не сверху “до населённого пункта”, а снизу, как англичане адреса пишут.
То есть на доме проставляется один уровень - по чему адресуется дом. При этом мы должны иметь однозначный факт того что это именно то, по чему дом адресуется, а не глобальное уточнение.
Уровень выше, собирает все вышестоящие элементы по геометрии, либо по явно проставленным тегам. В этом случае можно вводить addr: на территориях/улицах, но только для нестандартных случаев (100м улицы Широкая, адресующейся по деревне Гадюкино, проходят по деревне Гореловка).
В случае конфликта между тегами с территории и тегами с дома приоритет имеют теги дома.
Деревни/поселка в составе города тоже не бывает. Либо деревня/поселок уже не самостоятельный нп, а квартал/макрорайон в имени которого может оставаться слово деревня/поселок или это не сам город Хххх, не нп, а муниципальное образование городской округ/городское поселение Ххх.
Разница между единицами территориального планирования и административного деления - прежде всего, в отсутствии и наличии органов местной администрации (самоуправления) и в том, как это закреплено в соответствующих законодательных актах и планах.
Подскажите, так как на текущий момент правильно ставить теги если дом адресуется по территории (район города или деревня)?
Нужно ли дополнительно копировать в addr:street содержимое addr:place? В вики написано, что со временем addr:street предполагают убирать в этих случаях.
А то сейчас контроль качества ругается, что не установлен addr:street у домиков.