Size: a a a

OpenStreetMap RU

2021 January 23

i

iWowik in OpenStreetMap RU
Anton [az09@osm] Belichkov
не понял, а где пятая звезда?!
Звезду Александру Васильевичу! (С) банк Империал.
источник

M

Maksim in OpenStreetMap RU
Pavel Gavrilov
Ко мне на ютуб пришел Сова, пишет что я мультиполигоны неправильно редактирую, поэтому не имею права учить, и вообще меня надо побыстрее забанить в OSM, а все мои правки откатить. Предлагаю конкурс формулировок, как его послать подальше, да поизысканней.
Я вот эти полигоны никак не вкурю...
источник

NS

Nick Sokornov in OpenStreetMap RU
Maksim
Я вот эти полигоны никак не вкурю...
источник

ПЖ

Павел Жирнов... in OpenStreetMap RU
Maksim
Я вот эти полигоны никак не вкурю...
Ты наверное про отношения-мультиполигоны :)
Как с велосипедом просто надо поймать равновесие
источник

M

Maksim in OpenStreetMap RU
Павел Жирнов
Ты наверное про отношения-мультиполигоны :)
Как с велосипедом просто надо поймать равновесие
Да-да именно мультики. Когда сам на пустом месте - вроде понятно, а как "чужие" размером с район, так вынос мозга.
источник

NK

ID:0 in OpenStreetMap RU
А вот и заметка про бота @mayak_nav_bot: я две недели его писал и две недели обходил подъезды и заведения. Вам этот бот, скорее всего, не нужен, но вдруг вы захотите поднять такой же. Результатом я горжусь — омрачает это чувство только то, что я ненарочно смешал планы авторке другого районного бота и теперь придётся совместно искать выход.

http://shtosm.ru/all/rayonny-bot/
источник

ПЖ

Павел Жирнов... in OpenStreetMap RU
Maksim
Да-да именно мультики. Когда сам на пустом месте - вроде понятно, а как "чужие" размером с район, так вынос мозга.
А тут просто надо "набить руку", набрать опыт, ощутить. Придет потихоньку
источник

ПЖ

Павел Жирнов... in OpenStreetMap RU
Плюс отношения как раз в том что его не надо всего скачивать чтобы познать площадь.
источник
2021 January 24

PG

Pavel Gavrilov in OpenStreetMap RU
Maksim
Я вот эти полигоны никак не вкурю...
Там идея довольно простая.
В OSM есть четыре вида геометрических объектов.
1) Точка (свойства объекта: две координаты и опцонально набор тэгов)
2) Линия (это упорядоченный список точек, плюс опцонально набор тэгов). Важно что у линии есть направление, оно используется для некоторых видов объектов
3) Полигон, он же замкнутая линия (линия, у которой последняя и первая точки в списке - это один и тот же объект "точка"). Важно, что в отличие от обычной линии у полигона есть "внутрь" и "наружа", что даёт возможность использовать эту фигуру для рисования территорий.
4) Мультиполигон - это частный случай составного объекта (по сути это составной объект, у которого есть тэг type=multipolygon, ну и опцонально набор других тэгов). Тут придётся сделать отступление, и объяснить, что такое составной объект.

Составной объект (он же "relation" или "отношение") в концепции OSM это довольно необычная штука, которая изначально не имеет собственной координаты и физически никак не представлена на карте.

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

А вот для составных объектов акт создания объекта и акт добавления в него других объектов - разделены.

Самое общее описание "что такое составной объект" - это упорядоченная коллекция ссылок на другие объекты. На любые. Мы можем ссылаться на точки, можем на линии, можем на полигоны, можем даже на другие составные объекты - и всё это в рамках одного составного объекта.

В рамках этой концепции существует очень много вариантов использования составных объектов.

Например, есть такая штука как маршрут. Автобусный маршрут - это совокупность всех участков всех улиц, а так же всех остановок, по которым проходит и на которых останавливается автобус. Упорядоченный, т.е. не в повалку, а строго в том порядке, в каком автобус их проезжает. Маршрут электрички - это аналогичным образом совокупность всех железнодорожных перегонов, а так же всех платформ, на которых останавливается та или иная электричка. Пешеходный маршрут - это совокупность всех горных троп, по которым проложен оборудованный маршрут для горных туристов. И т.п.

Ещё есть реки и ручьи. Обычно реки и ручьи оказываются разделены на части в тех местах, где они протекают в трубе, т.к. кусок в трубе и кусок за пределами трубы тэгируются по разному и приходится разрезать реку на части. В результате получается, что описание (название, номер в реестре, ссылку на вики) мы дублируем для каждой части реки. Чтобы исключить такое дублирование было предложено объединять все участки в единый супер-объект, и всё вышеуказанное описание назначать этому супер-объекту.

Ещё составные объекты приспособили для обозначения запрета поворотов на перекрёстках. Если у нас на перекрёстке запрещено при выезде с одного направления поворачивать на другое (например, налево, направо или прямо), то создаётся составной объект, включающий в себя точку перекрёстка, выезд  "откуда" и выезд "куда". Это забавно, но оказалось, что любыми другими способами черезвычайно трудно объяснить автоматике, строящей маршрут по дорожной сети, что на этом перекрёстке нельзя поворачивать налево, потому что в абстрактном мире узлов и соединяющих их рёбер, по которым строится маршрут, нет никакого "лева", есть только висящие в пустоте узлы и соединяющие их рёбра.

И, наконец, царь-составной объект - мультиполигон. Самый часто встречающийся и самый странный из составных объектов.
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Maksim
Я вот эти полигоны никак не вкурю...
По сути это всё тот же полигон с "внутрью" и "наружей", но составляющие его замкнутые линии ("кольца") могут быть не цельными, а состоять из отдельных дополняющих друг друга кусков. Внутри внешней границы могут быть внутренние - они обрисовывают внутренние дырки. С геометрической точки зрения, всё что находится внутри таких дырок, для мультиполигона тоже "наружа", т.е. область, не относящаяся к мультиполигону. Обращаю внимание, что внутренние замкнутые линии, так же как и внешние, могут быть не цельными, а состоять из отдельных частей. Нужно только, чтобы в совокупности и внешние и внутренние линии получались замкнутыми, иначе мультиполигон считается повреждённым, может некорректно обрисовываться и для него оказывается непонятно "где внутрь, а где наружа". Ну и кроме того, замкнутых внешних границ тоже может быть несколько, что даёт нам возможность создавать единый объект из нескольких не соединяющихся территорий (такое использование встречается реже, чем дырки, но тоже бывает).

Самое важное здесь - это дырки. Не существует никаких других способов описать средствами OSM геометрические объекты с дырками. Тогда как задача - весьма востребованная. Примеров много.

Лес, а внутри поляна? Лес это мультиполигон, а поляна это дырка. Это простой пример.
Болото, а посередине озеро? Болото это мультиполигон, а озеро это дырка. Дырка в объекте "болото" и при этом совершенно самостоятельный объект "озеро". Для болота озеро - это "наружа", озеро не часть болота и поэтому кувшинками поверх не заштриховывается.
Это что касается дырок.

Теперь что касается составных границ. Тут концепция менее очевидная. Предположим, у нас есть две территории, скажем, населёнка и промзона, отделённые друг от друга забором. Можно нарисовать это тремя отдельными объектами - полигоном населёнки, полигоном промзоны и разделяющей их линией забора. Получается, что мы должны будем нарисовать забор, а потом поверх него нарисовать полигон населёнки, а потом ещё полигон промзоны. Получается, что у нас по забору идут, дублируясь, три разные линии. Линия забора, линия промзоны и линия населёнки. Концепция составных границ (она ещё называется концепцией лоскутного зонирования) предлагает не дублировать линии, а вместо это нарисовать одну единственную линию общей границы. Потом для промзоны и населёнки отдельно нарисовать собственные участки границы. А потом собрать два мультиполигона, для каждого использовать собственный участок и общий участок границы, дающие в совокупности замкнутую линию. Три линии, две площади. Одна линия общая на обе территории. Если в будущем это понадобится, мы можем её поправить и это отразится на обеих территориях. Кроме того, непосредственно на эту линию (входящую сразу в два мультиполигона) можно повесить тэг забора. Общий участок границы - это отдельная линия, и она включается в обе территории, которые она отграничивает.

Тут есть и плюсы и минусы. Если ты овладел сборкой/пересборкой мультиполигонов из составляющих их границ, то твоя жизнь сильно упрощается. А вот если не овладел, то наткнувшись на такой участок, очень велик риск всё порушить. Мне реально встречались мультиполигоны гигантских участков леса, граничащие дофига с чем - с болотами, лугами, населёнкой, озёрами, другими участками леса и т.п., состоявшие из сотни фрагментов с гаком. Такого монстра даже опытному маперу редактировать сложно, а уж если не владеешь инструментом - что-нибудь повредишь гарантированно. В результате получаются участки, куда начинающих картографов допускать нельзя, а это плохо и нарушает концепцию "любой участник при соблюдении правил может исправить что угодно".
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Maksim
Я вот эти полигоны никак не вкурю...
В JOSM есть плагин-инструмент reltoolbox, который автоматизирует часть задач по сборке мультиполигонов, в частности, проверяет замкнутость всех контуров, составляющих мультиполигон и ругается, если ему что-то не нравится. Кроме того, он сам разделяет контуры на внешние и внутренние, автоматически проставляя тэги для всех добавленных в мультиполигон линий границ. Это колоссальное подспорье, рекомендую без него в редактирование мультиполигонов даже не соваться. Reltoolbox был написан десять лет назад Ильёй Зверевым @ilyazver так что решпекты слать ему.

Я записывал два довольно длинных (часовых) скринкаста.
Первый - по работе с инструментом reltoolbox.
https://www.youtube.com/watch?v=XLefItn3xjA

Второй - с практическим примером использования этого инструмента. Там я не объясняю концепции, а просто разбираю и пересобираю разные, иногда гигантские мультиполигоны леса, чтобы исключить из их состава поляны, болота и озёра. Видео представляет отдельный интерес, потому что я там решаю некоторые практические задачки, которые не встречались в ходе описания теории. Например у меня не собирался мультиполигон, потому что составляющие его границу линии были замкнуты с перехлёстом и не представлялось возможным обнаружить место этого перехлёста визуально.
https://www.youtube.com/watch?v=yXiDKB9l6Sg
источник

AS

Artem Svetlov in OpenStreetMap RU
Maksim
Я вот эти полигоны никак не вкурю...
это как MULTIPOLYGON в гисах, только ещё в нём хранятся полигоны с дырками, и большие полигоны, у которых граница составляется из нескольких последовательных линий.
источник

14

1 4 in OpenStreetMap RU
Maksim
Да-да именно мультики. Когда сам на пустом месте - вроде понятно, а как "чужие" размером с район, так вынос мозга.
Это неудивительно.

Монструозные мультиполигоны зло, их создают те, кто совсем не думает как потом это редактировать.
источник

14

1 4 in OpenStreetMap RU
Dmitry 🇷🇺
кстати я так и не понял, почему в России нельзя использовать? в россии такие же тренажеры есть. площадки спортивные с тренажерами
Не может быть никаких адекватных причин локально забанить тег.

Сложнее то что у нас редки места, которые можно было бы описать как recreation ground. Это не газон, а благоустроенный кулачок земли для отдыха сотрудников / учащихся / граждан, который не описать иначе.
источник

D

Dmitry 🇷🇺 in OpenStreetMap RU
Maksim
Я вот эти полигоны никак не вкурю...
А мне как раз видео Павла помогло. Сразу все стало понятно
источник

ПЖ

Павел Жирнов... in OpenStreetMap RU
1 4
Это неудивительно.

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

14

1 4 in OpenStreetMap RU
Павел Жирнов
Предложи другой вариант для полигона площади РФ :)
Отношение - необходимое следствие реальности
Границы страны особый случай
Водоемы вроде Ладоги тоже не разделить, увы
источник

14

1 4 in OpenStreetMap RU
Но лес монстрами ни к чему рисовать
источник

D

Dmitry 🇷🇺 in OpenStreetMap RU
А вот вопрос. Если не мультиполигоны, то что? Дублированные линии. Насколько это плохо рисовать забор и индастрил и жилую зону, которую он разделяет тремя линиями по одним и тем же координатам?
источник

D

Dmitry 🇷🇺 in OpenStreetMap RU
Кое где так встречаю
источник