OpenStreetMap

ЧТО ЕЩЕ ВЫЯВИЛА КАРТОАКЦИЯ?

Posted by Zkir on 24 May 2020 in Russian (Русский). Last updated on 14 June 2020.

Картоакция выявила еще одну УДИВИТЕЛЬНУЮ вещь: нет общепринятого и простого способа обозначать мелкие населенные пункты, деревни и села.

Способ, который был общепринятым, и который до сих пор доминирует, состоит в следующем:

  1. Обозначить центр населенного пункта, т.е. деревни или села, точкой с тегом place=village или place=hamlet и названием name=Нееловка

  2. а так же обозначить контур населенного пункта при помощи полигона с теми же тегами, включая название.

  3. Кроме того, на тот же контур вешается тег landuse=residential, а также еще residential=rural.

Приводит это однако к тому, что в таком случае название населенного пункта на мапнике отрисовывается два раза. Название полигонального place на мапнике не показывается, равно как и сам полигон place. Название landuse всё же вылезает.

Внятного выхода из этой ситуации нет. Совсем удалить полигон нельзя, потому что среди прочего, по принадлежности к нему определяется адресация (addr:city), а так же в навигаторах определяется лимит скорости 60/90 для дорог.

Можно попопытаться landuse=residential нарисовать отдельно, но это не всегда обосновано. Мелкий населенный пункт обычно состоит из одного лэндюза.

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

Comment from pacman541 on 25 May 2020 at 06:29

Наверно, на place=village не стоит вешать landuse=residential, поскольку landuse - это землепользование, а в пределах деревни могут быть и другие объекты кроме жилых (фермы например). Т. е. place=village и landuse=residential это разные полигоны (чаще всего), но могут и совпадать (редко).

Comment from Zkir on 25 May 2020 at 18:24

@pacman541, это в теории редко. А на практике этот случай доминирующий. Сравните сами.

https://overpass-turbo.eu/s/Un7 vs https://overpass-turbo.eu/s/Un8

Причем отрисовывалось это 10 лет назад по Landsat

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

Comment from pacman541 on 26 May 2020 at 06:11

Zkir, попробуйте те же запросы сравнить на Тверской области)) Тег place=* все же больше тяготеет к административным границам населенного пункта (согласно вики), а landuse=* - землепользование, не связанное с границами населенного пункта.

Comment from Zkir on 26 May 2020 at 20:04

@pacman541,

Границы НП не могут быть не связанны с землепользованием. Населенный пункт по определению это место, где живут люди. В большом населенном пункте может быть много разных землепользований, в маленьком – одно. И это нормально.


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

Не очень правда верится, что вот это например административка (Прямухино) https://www.openstreetmap.org/way/679216172/history

Что-то больше на ландсат похоже.

А вот по соседству типичный НП с одним ландюзом (Вперед) https://www.openstreetmap.org/node/658457498#map=17/56.94122/34.43430

Полигональный place=hamlet вовсе отсутствует.
Как его нарисовать?

Comment from pacman541 on 27 May 2020 at 11:35

У нп Вперед place=hamlet присутствует в виде отношения: https://www.openstreetmap.org/relation/9431501
Кстати, в Московской, Ярославской и других областях также преобладают двойные полигоны (place и landuse на разных полигонах).

Comment from Zverik on 14 June 2020 at 08:33

Даже перепроверил год заметки: думал, это отголосок 2014. Название на точке и на полигоне — супер-длинная проблема OSM, которую обсужали ещё до того, как я пришёл в проект. Для решения мы придумывали тег place_name, который потом отменили. В репе картостиля минимум пять обсуждений, некоторые с пул-реквестами. Закрытыми, потому что для мейнтейнеров это не проблема.

Comment from Zverik on 14 June 2020 at 08:36

Ну и вешать landuse=residential на контур — это моветон, который порицался тоже ещё до моего прихода в проект, и мнение не изменилось. Вот только последние обсуждения на форуме: раз, два, три.

Comment from _PG_ on 14 June 2020 at 09:43

А ты какой вариант предпочитаешь? Создавать для landuse копию контура? Создавать второй контур с отступом? Делать один контур, но не ставить на него какой-либо из тэгов?

Comment from Zverik on 14 June 2020 at 10:07

Я обычно рисовал отдельные контуры с отступами от дорог. Но как временное решение, можно рисовать отдельный контур чуть меньше, но на всю территорию НП, чтобы включал только населённые территории. Когда мне было совсем лениво, я делал два мультиполигона на одном контуре, но это совсем редко.

Comment from Zkir on 14 June 2020 at 12:56

@Zverik

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

вешать landuse=residential на контур — это моветон

Это весьма относительное утверждение. Если речь о городе, который в принципе состоит из многих ландюзов, то вешать на один полигон и place и landuse – это моветон.

Если это деревня, которая в принципе состоит из одного ландюза, то это вполне нормальная практика.

Плодить альтернативный контур для той же сущности, как предлагает Павел в ролике – вот это как раз моветон.

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

Comment from freeExec on 17 June 2020 at 07:42

На дворе 2020, а вы всё мапите под рендер.

Comment from _PG_ on 18 June 2020 at 19:36

На дворе 2020-й год, а вы все ещё считаете, что картой не должен пользоваться никто кроме маперов.

Comment from Zkir on 18 June 2020 at 21:06

@freeExec, ты не мог бы по теме высказаться? Что мы делаем не так и как надо?

@PG, так получается (при некотором весьма специфическом толковании выражения “не мапить под рендер”), что вообще никто не может этой картой пользоваться. Прежде чем картой мог пользоваться хотябы кто-то, пусть даже и маппер, ее должен сперва отрисовать рендер.

Comment from freeExec on 19 June 2020 at 06:42

@Zkir таки ответь по сути: проблема в данных или в картинке?

Comment from _PG_ on 19 June 2020 at 14:04

Отвечу по сути я: в данных. В том, что никто толком не знает, что такое “границы поселения” и как их рисовать. И нигде это не описано. И нигде не стандартизовано как именно их рисовать, чем они отличаются от landuse=residential, и как вообще всё это тэгировать. Напомню, из-за того, что всё тэгируется вповалку, картостиль рисует name для landuse. А на контуре name для place, а не для landuse. Это проблема даже не в данных, это проблема в отсутствии рекомендаций по сочетанию этих двух объектов.

Comment from Zkir on 25 June 2020 at 15:42

PG, спасибо.

Comment from Zkir on 25 June 2020 at 15:44

Еще в копилку наблюдений. JOSM расценивает два мультиполигона на одном контуре как ошибку – выдает ворнинг.


Login to leave a comment