Новые операции - буфер и объединение пересекающихся объектов

Добавили в наш редактор графов две новые операции.

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

Например, в OSM дороги обычно задаются линиями, не имеющими толщины. Но что если нам нужны дороги в виде полигонов, а не линий?

Вот таким образом можно этого достичь. Мы сперва выделяем основные дороги (highway=primary), а затем получаем область на 20 метров вокруг них:

В итоге получится вот такая картина:

Но что это за странные круги?

Дороги в OSM состоят из отдельных кусочков. И в местах соединения этих кусочков образуется граница двух буферов. Одна половина круга - это край одного буфера, другой - другого, а вместе они образуют эти окружности.

Чтобы их убрать, мы можем применить новую операцию - слияние пересекающихся объектов.

Эта операция, как ясно из названия, объединяет пересекающиеся объекты в один.

После выполнения этого пайплайна мы получим вот такой один объект:

При объединении объектов объединяются и теги. Если какой-то тег был у нескольких объединяемых объектов, то у результата будет одно из значений этого тега, но какое именно - сказать нельзя.