User:Zverik/Triple Place

From OpenStreetMap Wiki
Jump to navigation Jump to search

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

Посмотрим на эту легенду к настенной карте ЗАО «Карта» (сверху отрезан заголовок «Города и городские посёлки»):

City status.jpg

Здесь видна традиционная для России классификация сразу по трём параметрам, не смешивая их в один: по населению, по официальному статусу и по административной иерархии. Здесь мы пойдём напролом: сделаем точно так же.

place

Выбор значения тега place упрощается до автоматизма:

Значение Что означает
city Город с населением больше 100 000 человек
town Город или посёлок городского типа с населением меньше 100 000 человек
village Большой сельский населённый пункт (деревня, село, посёлок сельского типа и т.п.)
hamlet Сельский населённый пункт с населением до 300 человек, либо количеством жилых домов до 40

Может возникнуть вопрос про границу населения для hamlet. Суть в том, что она не важна. В разных субъектах федерации она может быть разной, её выбор оставляем на картографа. Приведённые цифры должны устраивать в большинстве случаев.

Посмотрите также раздел #Компромисс.

admin_level

Административный статус выделяется в отдельный тег, admin_level. В этом предложении отмечается, что вкупе с admin_level нужно ставить тег capital=yes, но он серьёзно портит картинку во многих современных рендерерах, поэтому пока что лучше не надо. В будущем, если возникнет такая необходимость, его можно будет проставить автоматически всем НП, у которых указан admin_level.

Разумеется, при наличии отношения границы района с проставленными boundary=administrative и admin_level=* населённый пункт с этим же admin_level внутри района должен входить в это отношение с ролью admin_centre. Уровень отношения с НП в роли центра имеет приоритет над значением тега в самом населённом пункте.

Значение Что означает
4 Столица субъекта Федерации (область, край)
6 Центр муниципального района или городского округа
8 Центр волости, городского или сельского поселения
9 Центр ещё более меньшей единицы, если такие есть

Подробнее про административные уровни написано на страницах admin_level=* и boundary=*.

population

Тег population становится очень желательным (можно сказать «обязательным», но официальных данных на все населённые пункты просто нет) для всех НП. Он, как известно, хранит приблизительное количество жителей.

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

place \ admin_level 4 6 8 нет
city 300 000 150 000 110 000 150 000
town 90 000 40 000 15 000 10 000
village 10 000 4000 1500 800
hamlet 1000 400 200 100

Заключение

Тег population не зависит от схемы и его нужно заполнять, каким бы методом выбора значения place вы ни пользовались. Административный статус, поскольку у нас есть кадастр и ОКАТО, скоро можно будет получить для любого населённого пункта из отношения, в которое он входит с ролью admin_centre. Таким образом, изменяется только метод заполнения тега place в сторону серьёзного упрощения. По сути, из него можно получить только тип НП: городской или сельский.

Получается, вопрос в рендере. Что можно сказать о нарисованном на карте НП? Если рендерер учитывает все три, или хотя бы два, параметра — довольно много. Собственно, почти всё, что может пригодиться. Если же только значение тега place — то ничего. Без выделения центров волостей и районов, без способа выяснить, где по пути будет деревня побольше, в каком посёлке выше вероятность найти ночлег, у НП на карте остаётся одна цель: служить точкой назначения.

Автору не нравится вышеприведённая схема по многим причинам, основная из которых — инструменты отображения и обработки карт в настоящее время не учитывают при классификации населённых пунктов никакие теги, кроме place. Зарубежные не будут учитывать ещё очень много лет, если вообще будут. Поэтому была разработана схема, совмещающая в себе тип и административный статус пункта с поправкой на население, т.е., объединяющая все три параметра в один. В ней городские НП редко получают статус ниже town, а сельские — выше village, поэтому она не так далека от этой, упрощённой. При этом учитываются административные статусы, что позволяет более равномерно, при этом не бессмысленно, распределить НП между классами.

Компромисс

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

  • place:urban=yes/no — городского или сельского типа населённый пункт;
  • official_status=* — официальный статус населённого пункта, со строчной буквы («посёлок городского типа»).

Соответственно, умные рендереры будут рисовать название НП по трём-четырём параметрам, не используя place. Все остальные воспользуются комбинированным тегом. Этим мы признаём, что тег place предназначается только для рендереров и не может вместить в себя никакую более-менее полную классификацию.

Оба этих тега включены в предложение новой схемы.