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

Узлы графов делятся на следующие виды:

  • Входы
  • Фильтры
  • Операции
  • Шаблоны
  • Выходы

Входы

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

OSM Input

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

Выбор области для импорта из OSM

FileInput

Узел загружает данные из GeoJSON файла. Файл необходимо сперва добавить в проект.

Выпадающий список содержит перечень всех загруженных в проект файлов

Загрузка, просмотр и удаление файлов осуществляется вот на этой вкладке на странице проекта:

Input

Используется только при создании шаблонов. Соответствует входу в шаблон. Имеет один параметр - имя входа.

При добавлении узла шаблона в графы пайплайнов, у таких узлов будет столько входов, сколько было узлов Input в графе шаблона


Фильтры

Узлы-фильтры принимают на вход один или несколько потоков объектов и выдают на выход только те из них, которые удовлетворяют условию фильтра

Filter by Tag Exists

Пропускает только те объекты, у которых есть указанный тег. Значение тега при этом роли не играет.

Этот фильтр пропустит все здания, независимо от их типа

Filter by Tag Value

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

  • ==  значение тега равно заданному
  • != значение тега не равно заданному
  • > значение тега больше заданного
  • <, >=, <= - значение тега меньше, больше или равно, меньше или равно заданного.

Для сравнений "больше-меньше" значения сперва преобразовываются к числу. Если это получилось - сравниваются как числа, если нет - то как строки в лексикографическом порядке.

Этот фильтр пропустит только объекты, у которых указана этажность (есть тег building:levels) и они имеют 6 или более этажей

Количество значений можно увеличивать. В таком случае при проверке равенства будет применено условие ИЛИ (т.е. достаточно равенства с любым из значений), а для неравенства - И (т.е. необходимо неравенство со всеми значениями)

Выборка только дорог, у которых тег highway совпадает с одним из указанных значений

Filter by Area

Имеет два входа. На первый подаются объекты, на второй - области. На выход передаст только те объекты, которые пересекаются хотя бы с одной областью.

На схеме ниже этот фильтр используется для поиска дорожек в пределах парка. На первый вход (объекты) подаются все дорожки (объекты с тегом highway=footway), на второй - парки (leisure=park), на выходе будут все дорожки, которые находятся в пределах хотя бы одного парка.

Можно выбрать один из двух режимов пересечения:

  • Intersects - объекты из первого входа должны пересекаться (то есть иметь хотя бы одну общую точку) с хотя бы одним объектом из второго входа
  • Contains - объект из первого входа должен целиком содержаться внутри одного из объектов со второго входа
Ищем дорожки, пересекающиеся с парками

Filter by Geometry Type

Фильтр по типу геометрии - точка, линия, полигон. Работает в двух режимах - равенство (==) и неравенство (!=) типа заданному

Пропустит только точечные объекты

Filter by Geometry Area

Фильтрует по площади, занимаемой объектом. Можно выбирать условие (больше или меньше указанной площади) и единицы измерения (метры, сотки, гектары).

Оставит только объекты площадью более 10 соток (1000 м2)

Операции

Это вспомогательные узлы, позволяющие объединять или еще как-то модифицировать поток данных

Объединение

Объединяет несколько потоков данных, на выходе будут все объекты из всех входов.

Изначально входов два, но можно добавить дополнительные с помощью кнопки.

Объединяем выборку по зданиям, природным и развлекательным объектам

Разность потоков

Передает на выход те объекты, которые есть в потоке на первом входе, но отсутствуют в потоке на втором входе.

Эта операция позволяет инвертировать значения фильтра. Например, если нам нужны объекты, которые НЕ пересекаются с заданными областями, мы можем инвертировать значение Area Intersection Filter таким образом:

Сперва мы выбираем все озеленение с помощью узла City Greenery. Затем отбираем те объекты, которые пересекаются с нужной нам зоной (ребро идущее слева-сверху). Затем передаем их на второй вход узла разности, а на первый передаем неотфильтрованный поток озеленения. В таком случае, на выходе мы получим объекты озеленения, которые не были на выходе Area Intersection Filter, т.е. которые НЕ пересекаются с указанной зоной.

Слияние пересекающихся

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

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

Буфер

Стандартная операция построения буфера вокруг объекта. Имеет один параметр - толщину в метрах.

При отрицательном значении объекты будут "сужаться", при положительном - "утолщаться" на эту величину.

Центроид

Заменяет геометрии объектов на их центроиды - точки, представляющие собой центры масс.

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

Для объектов сложной формы центроид может находиться за пределами геометрии объекта.

Установка тега

Устанавливает всем объектам в потоке указанное значение заданного тега

Установит всем объектам тег test_tag=1234

Шаблоны

Шаблоны позволяют создавать сложные графы, которые затем можно вставлять в другие графы в виде одного-единственного узла. По сути это аналог подпрограмм.

Узел шаблона имеет столько входов, сколько узлов типа "Вход" имеет граф шаблона.

Так выглядит шаблон для зеленых зон, включающий несколько возможных тегов OSM:

Так выглядит шаблон для зеленых зон

А вот так он выглядит в виде узла при вставке в другие графы:

Узел шаблона в графе

Шаблоны позволяют упростить обработку и выполнение типовых задач. Мы подготовили шаблоны для типовых объектов, таких как "зеленые зоны", "здания" и т.п. Так что вам не нужно самостоятельно заботиться о том, какими именно тегами в OSM описываются эти типы объектов.


Результат

Узел с результатом имеет единственный вход и не имеет выходов. Все объекты, дошедшие до этого узла, будут сохранены как результат выполнения пайплайна.

В графе может быть только один узел с результатом. Если вы хотите объединить в результат несколько групп объектов, используйте узел "Объединение".

Результат - единственный в графе узел, не имеющй выходов