Использование GeoJSON в виджетах: создание, подключение и пример

Геоджейсон (GeoJSON) - это формат для представления географических данных с использованием синтаксиса JSON. Он часто используется в веб-приложениях, где требуется отображение и манипулирование географической информацией, такой как карты, географические объекты и пространственные данные. Например, на платформе Insight файлы формата GeoJSON могут использоваться для работы с виджетом “точечная карта”.
GeoJSON имеет большое значение для визуализации географической информации на интерактивных картах и решениях ГИС. Он позволяет хранить и обмениваться данными о точках, линиях, полигонах и других пространственных объектах.
Для создания геоджейсон данных необходимо определить тип объекта «type». В качестве значения свойства «type» используется одна из строк: «Point», «MultiPoint», «LineString», «MultiLineString», «Polygon», «MultiPolygon» или «GeometryCollection».
Примеры различных типов пространственных объектов:

  • Точка (Point): Представляет отдельную точку на карте, заданную своими координатами широты и долготы.
  • Мультиточка (MultiPoint): Представляет коллекцию точек на карте, заданных своими координатами широты и долготы.
  • Линия (LineString): Представляет линию, состоящую из последовательности упорядоченных точек на карте.
  • Мультиточечная линия (MultiLineString): Представляет коллекцию линий на карте.
  • Полигон (Polygon): Представляет замкнутую область на карте с границей, определенной внешней границей и может содержать одну или несколько внутренних границ.
  • Мультиполигон (MultiPolygon): Представляет коллекцию полигонов на карте, каждый из которых может иметь внешние и внутренние границы.
  • Геометрическая коллекция (GeometryCollection): Это контейнер для хранения нескольких объектов разных типов геометрий в одном месте.
    Все геометрии, тип которых отличен от «Geometry Collection», должны иметь свойство «coordinates». Координаты определяются массивом чисел. Этот массив должен содержать минимум два элемента, но их может быть больше. Порядок элементов должен быть следующим: x, y, z (для данных, находящихся в прямоугольной системе координат - смещение на восток, смещение на север, высота, для данных, находящихся в географической системе координат – долгота, широта, высота).
    Некоторые сайты, которые позволяют собирать координаты и добавлять их в формат GeoJSON, например Яндекс Карты, 2ГИС и др.
    Пример полигона в геоджейсон:
    {
    “type”: “Polygon”,
    “coordinates”: [
    [
    [100., .],
    [101., .],
    [101., 1.],
    [100., 1.],
    [100., .]
    ]
    ]
    }

В данном примере создается простой четырехугольный полигон с координатами его вершин [(100., 10.), (101.,10.), (101.,11.), (100.,11.)].
Важно, что для создания замкнутого полигона первая и последняя вершины должны быть одинаковыми.
Так же для уникальной идентификации каждого объекта в наборе данных в геоджейсоне могут быть добавлены идентификаторы, которые могут быть представлены в виде строки или числа. Важно отметить, что идентификатор должен быть уникальным в пределах всего набора данных.
Пример c использованием идентификатор «id»:
{
“type”: “Feature”,
“geometry”: {
“type”: “Point”,
“coordinates”: [100., .]
},
“properties”: {
“id”: 1,

}
}
Использование идентификаторов имеет несколько преимуществ:

  1. Уникальность: Используя идентификаторы, вы можете обращаться к конкретному объекту по его уникальному значению без необходимости использования других свойств для поиска.
  2. Сопоставление данных: Используя идентификаторы, вы можете связать данные из разных наборов, на основании общего значения. Например, в виджете «Точечная карта» идентификаторы нужны для связки датасета с GeoJSON по конкретному полю, чтобы настроить дриллдаун, масштабирование и т. д.
    image

Рассмотрим пример добавления слоя в точечной карте с помощью файла geojson. При отсутствии датасета, также можно отобразить geojson-слои без проваливания и кастомизации.
Для начала создадим файл, содержащий данные о всей Ленинградской области. Затем добавим еще один файл, с данными об отдельной области, которая входит в состав Ленинградской области, и стилизуем ее отдельно. Это также необходимо для возможности активации проваливания из слоя 1 уровня в слой 2 в дальнейшем. Для этого используем тип “MultiPolygon”, поскольку у нас есть районы с несколькими отдельными участками, добавляем идентификаторы и координаты объектов.
image image

После этого заходим в редактор приложения и добавляем данные файлы в менеджер файлов.
image

Затем добавляем виджет «Точечная карта» и переходим в настройки, раскрывая раздел “Настройка слоев”.
image

Нажимаем на слот «Добавить слой» и выбираем тип слоя GeoJson. Далее раскрываем раздел “Файлы” и нажимаем кнопку “Добавить geojson”.
image

Находим нужный файл с данными о Тихвинском районе и выбираем его.
После этого создаем второй слой и добавляем данные о Ленинградской области.

image

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

Добавим еще один файл GeoJSON использующий геометрический тип “LineString”. Этот тип данных часто используется для представления дорожных маршрутов, рек, границ и других линейных объектов.
Загрузим файл в менеджер файлов.

image

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

image

Более подробную информацию о настройке точечной карты можно найти в соответствующей статье на вики https://partner.goodt.me/wiki/#/wiki_elemmap.

5 лайков