Вопросы новичков (Part 1)

Но это в самом деле разные границы. Границы населённых пунктов не относятся к административным границам.
Почитайте теорию на этот счёт: http://wiki.openstreetmap.org/wiki/RU:%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%86

Не стоит всецело полагаться на кадастр, там черт знает что нарисовано, бывает и по три границы на одном месте.

Дублирование плохо, но пока так принято. Культурный центр — если не видно, от балды в центр, если видна площадь с админ. зданиями или магазином, то туда. Чётких правил нету, главное, что б навигатор не привёл в удалённую промзону какоу-нибудь.

Более лучшая страница: http://wiki.openstreetmap.org/wiki/RU:Key:boundary

Данный текст я уже проглядывал ранее, но, честно говоря, я не совсем понимаю логику стоящую за те что написано вот здесь. Там просто утверждается о том что якобы не надо проставлять admin_level и boundary для границ НП, плюс утверждается что граница НП и административная граница могут не совпадать. Почему так решено и в чём отличие между “границе НП” и “административной границей НП”, об этом ничего не сказано. Ну и ещё сказано, что ставить точку для “культурного центра” НП обязательно.

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

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

Хм, так-то оно так, плюс принято проставлять landuse=residential для деревень две третьих территории которых это приусадебные участки. (что в определение residential укладывается весьма плохо) Может стоит составить пропозал и мигрировать потихоньку? Или же из-за боязни что поломаются рендеры никто этого не делает?

Там написано:

Т.е. если в условной деревне имеется сельсовет или другой орган местного самоуправления, то нужно проставлять admin_level? Или же подразумевается нечто другое?

приусадебный участок, это не farm. это allotments

Административные границы бывают у Муниципальных образований и территориальных органах. Они создаются для районов городского округа. Чтобы их создавали в сельских поселениях на каждый НП я не видел. Их там вообще не создают. Ну или я что-то не так себе представляю.

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

Вот иллюстрация, если не понятно:

http://openstreetmap.ru/#map=16/56.4995/38.3884&layer=K

тёмный цвет - landuse, фактическое землепользование. Более светлый - place, по нему можно, например, определить в деревне я или нет. Официальных границ тут, к счастью, нет, но представьте кривую линию наименее логичной конфигурации из возможных, захватывающую куски соседних полей но не захватывающую некоторые дома самой деревни - так она обычно и выглядит.

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

Такого не может утверждаться потому что рендеров сотни и они вольны обрабатывать данные как хотят. Их проблемы никак не должны влиять на то как вы заносите данные в базу.

Какой пропозал, куда мигрировать, что поломается? Что вы вообще подразумеваете под “приусадебными участками”? Деревня - прежде всего жилая территория, поэтому на её территории обязано присутствовать landuse=residential. Ставить его на полигон деревни не ошибка, но серьёзная неточность. Но если нет возможности отрисовать landuse по фактическим участкам как в примере выше, остаётся только поставить его на весь полигон деревни.

Да, действительно ошибся выше.

Судя по этой статье, действительно ниже сельского поселения муниципальных образований нет. Но выделяются так называемые “территориальные единицы”, к которым относятся деревни, сёла, города и др., а муниципальные образования именуются “административно-территориальными единицами”. Т.е. если условиться что boundary=administrative применимо только для муниципальных образований, то тогда да, приписывать его для малых НП не нужно. Тем не менее против такого подхода в качестве аргумента можно привести кадастровую карту на которой границы деревень имеют тот же тип, что границы сельских поселений и районов. Но видимо в данный момент большинство именно за вариант, что применять тег не нужно. Принято к сведению.

Т.е. фактически вы говорите что границы НП нужно рисовать от балды, забив на статус землепользования и официальные границы от которых в т.ч. и пляшет почтовая адресация? Ибо именно это я вижу в вашем примере. По фактическому землепользованию вопросов нет, но вот граница НП в виде грубой обрисовки, лично для меня, выглядит немного странно. Бесспорно в случае отсутствия официальных источников примерно так и следует поступать, но если в моём случае имеются достаточно подробные источники с которыми можно сверяться (кадастр+сайт сельского поселения), проводя дальнейшую отрисовку по спутнику, то неужели вы предлагаете мне рисовать границу НП на глазок?
Ну и кстати, для вашего примера в кадастре граница таки имеется. Зайдите на сайт и в “управлении картой” включите границу и выключите кадастровое деление.

Имеется прямое дублирование двух тегов: place и name.

Мопед не мой:

Но проблема тем не менее как была, так и осталась. И нигде-нибудь, а на мапнике, который в сущности есть лицо OSM’а.

Рекомендовать для населённых пунктов использовать отношения, а не текущую общепринятую схему в которой населённый пункт обозначается дважды, сначала точкой, потом ещё и областью. С дублированием тегов.
Т.е. для обозначения условного НП сначала обрисовывать его границу (неважно как), потом на эту границу навешивается отношение (для которого уже и указываются теги place, name, population, etc.), граница помечается стандартной ролью outer, а то место где желательно отображать надпись и которое является условным центром помечается точкой (возможно без каких-либо тегов) с ролью label (или аналогичной), причём последнее не обязательно (т.е. где ставить надпись даётся на откуп рендеру) и тогда отношение ничем не будет отличаться от простого мультиполигона. Т.е. вместо двух сущностей отвечающих за НП будет только одна, на которую уже можно будет напрямую ссылаться используя роль subarea, что позволит строить дерево территориальных единиц без использования каких-либо геозапрсоов. В то же время и существующим механизмам адресации это не повредит, т.к. мультиполигоны для границ НП активно используются и в настоящий момент.

Всё ровно наоборот: “от балды” - это официальные границы, а наши place рисуются так чтобы включать всё что входит в деревню (в том числе адресацию) и не включать то что к деревне не относится.

Без одинаковых place и name нельзя сопоставить точку и полигон, так что нет, не имеется.

Костылём был place_name. “Проблему” сначала исправили, потом вернули обратно, потом опять исправят, а потом опять сломают - я повторюсь, на данные это никак не должно влиять. А то, что мапник - лицо ОСМ полагать ошибочно.

Отношения неподдерживаемы, поэтому name улиц у нас дублируются на фрагментах, адреса сопоставляются по названию улицы, а НП представлены точкой и границей. Также вы ошибаетесь - вместо двух сущностей будет не одна, а три - полигон, точка и отношение. subarea ещё менее поддерживаемы и дублируют геометрическую информацию, поэтому использовать их не рекомендуется. Запросы только усложнятся, потому что вместо “точка в bbox” нужно будет достать точку в bbox, потом отношение содержащее эту точку.

Названия дублируются лишь в том случае, если на один контур вешают и place и landuse. Тогда название рендерится и для того и для другого.

А как вы определите что относится к деревне, а что нет? Например сельскохозяйственный участок принадлежащей семье и обрабатываемый ею, которая живёт в деревне, считается частью деревни или нет? Как вы разделите две деревни стоящие друг к другу вплотную? (был и такой случай) Как быть с фермерскими зданиями, включать их в деревню или нет? Я согласен, что имеет смысл отходить от официальных карт, если какие-то дома явно не входят в неё, но мне всё-таки кажется, что за фундамент надо брать именно официальные карты, иначе же будет свободное творчество с границами в плохом смысле этого слова.

Хотя ладно, этот вопрос по сути не столь важен.

Можно их сопоставить отношением. Т.е. вместо неявной ссылки основанной на совпадении значений двух тегов использовать явные ссылки, а явное всё-таки обычно лучше неявного.

Вот это самое “непподерживаемы” для меня читается как “рисуем под рендер и навигаторы”.

Вместо двух элементов между которыми за счёт дублирования образована слабая ссылка, предлагается схема с двумя элементами (+ одним опциональным элементом, который не нужен будет в большинстве случаев) с явными связями и ролями, а так же с понятным и единым местом хранения информации о НП.

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

Не имею особых познаний в том как работают движки БД используемые связанными с ОСМ проектами, но разве там нельзя делать запросы relation’ы в bbox? Для рендеров в любом случае особой разницы нет, для движков адресации же, будет сначала искаться отношение и уже потом вытаскиваться границы.

Основным утверждением стоящим за данным предложением является то, что НП фундаментально не точечный объект, отсюда и предполагается вторичность “точки” для обозначения НП. Хотя на западе похоже вообще не особо заморачиваются с границами НП и обычно ставят только точки, для адресации используя addr:city.

Кадастр вообще не источник, забудьте про него. Чтобы на НП нанести административные границы у вас должно быть на руках решение совета депутатов устанавливающее эту границу. То что вы там видите на сайте это не более чем place. Даже в таких картах границы рисуются пунктирными линиями. На этом вопрос с границей считаю исчерпывающим.

Достаточно пользоваться здравым смыслом.

Скорее всего да.

А в чём проблема? Дом относится строго либо к одной деревне либо к другой, можно посмотреть по адресу или узнать у жильцов.

Вероятно, да.

Я повторюсь - официальные карты - уже свободное творчество, от которого нужно уходить.

В теории да, но, снова повторюсь, неподдерживаемо.

К сожалению, это не так. Если рендер можно научить обрабатывать данные сколь угодно сложными алгоритмами, то люди сложность не переносят. То о чём вы говорите может быть введено при серьёзной поддержке соответствующих отношений всеми редакторами и базой, а также полным отказом от старой схемы. Что вцелом не в духе ОСМ и объективной нужды в себе не имеет. До тех же пор отношения работать не будут.

Ещё раз повторюсь - точка ни в коем случае не опциональна, и смысл у неё куда больший чем место для подписи. Это и точка при роутинге “до города”, и способ определить направление движения “в центр/из центра” и положение города при точечном рендеринге (вспомните города-кружочки с крупномасштабных карт) и много чего ещё. Она никогда не может быть алгоритмически получена из полигона. Поэтому таки схема с 2 элементами со слабой ссылкой (на самом деле ссылка энфорсится валидаторами, поэтому не такая уж она и слабая) и с удиным местом хранения информации (точка) vs. схема с 3 элементами и 2 ссылками, требующая дополнительных сложностей как в редактировании так и в обработке.

Это неправда. Здесь любое обсуждение заканчивается на том факте что отношения могут быть, а могут не быть, могут быть кривыми и сломанными, могут дублироваться, могут отсутствовать некоторые члены. Геометрия же есть абсолютно всегда.

И снова, как было сказано, предпосылка неверна - населённый пункт НЕ “фундаментально площадной” объект, равно как и не “фундаментально точечный”.

AMDmi3
Принимаю вашу аргументацию. Единственное не соглашусь с:

Из полигона точка получается весьма легко и не особенно вычислительно сложно, как для определения где рисовать название, так и для точечного рендеринга. Для малых же НП нет смысла в движении “в центр/из центра”, а для крупных точку центра можно будет всегда указать. Т.е. если ужимать, то предложение можно было выразить следующим образом: позволить для малых НП отказаться от указания точки и указывать все данные в полигоне/“мультиполигоне”, для случаев же когда центр необходим, добавлять единственную точку в “мультиполигон” (который для крупных городов и так существует). Т.е. начиная просто с полигона, при усложнении границ двигаемся в сторону мультиполигона, проставляя при необходимости в самом конце усложнения точку с нужной ролью. Ничего криминально сложного и непподерживаемого в такой последовательности я не вижу, лично для меня такая схема более логична, нежели чем текущая. (в своё время пришлось немного поломать голову из-за дуальности границы-точки для НП) Причём обе схемы могут существовать параллельно и когда ситуация устаканится, НП указанные неявной ссылкой легко перегоняются в отношение скриптовыми средствами. Кроме того это даже немного сократит объём базы, т.к. по количеству малых НП абсолютное большинство, как и сократит время их указания на карте.

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

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

но всё же если есть возможность, лучше отрисовывать жилую область и ставить landuse=residential на неё. (вот так делаю я http://www.openstreetmap.org/#map=15/51.3385/38.7317))

насчёт дублирования названий. оно появилось после недавних изменений в мапнике.

а некоторая отрисовка landuse=residential вообще поломалась, например тут отрисовывается участок только на котором стоит rural : http://www.openstreetmap.org/#map=17/51.61520/39.06326 (наверно, потому что участок внутри place=suburb)

а этот полигон не рисуется http://www.openstreetmap.org/way/238031748 (наверно, потому что граничит с place=suburb)

это похоже на явный баг в мапнике.

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

чепецк и хуманитариан рисуют.

да. и должны рисовать. ведь всё правильно. а в мапнике бага. напишу сюда на днях https://github.com/mapnik/mapnik/issues

скромно замечу: баловство это. Я домиков «набомбил» бы. Получился бы самый резидентистый резидентиал :smiley:
В чём фишка каждые 2-3 строения «мазать» серой (любой другой) краской?
Например, фишка для всего поселения - наглядно обозначить «кляксу» жилой зоны (если это деревня) или квадрат квартала (соответственно).

согласен. народ из одной крайности в другую кидается: то весь нп одним полигоном мапят, то каждый домик. Как уже писали в landuse=residential должна входить жилая застройка и не должны дороги. Я думаю, что должно это выглядеть примерно так: http://openstreetmap.ru/#map=15/54.1839/50.3186