В предыдущей статье мы разобрались, что такое базовые блоки GeoJSON. А теперь пришло время разобрать наиболее важные и наиболее часто используемые типы объектов.

Как мы уже помним в GeoJSON есть такие типы:
- Point 🔵
- LineString 📈
- Polygon 🟥
- MultiPoint 🔵🔴
- MultiLineString 📉📈
- Мультиполигон 🟥 🟦

Особенность 🏞

Функция в GeoJSON — это объект, который содержит геометрическую форму (например, типы выше ^) и свойства (например, имя, тип и т. д.) для этой формы.

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

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

    {
      "type": "Feature",
      "properties": {
        "name": "Olympic Park",
        "size": "85 hectares"
      },
      "geometry": {
        "coordinates": [
          [
            [
              11.539417624693925,
              48.17613313877797
            ],
            [
              11.538077298468238,
              48.168150074081154
            ],
            [
              11.561556116500725,
              48.1685970352552
            ],
            [
              11.558505718881861,
              48.1759482169781
            ],
            [
              11.539417624693925,
              48.17613313877797
            ]
          ]
        ],
        "type": "Polygon"
      }
    }

Эта «Функция» состоит из трех основных компонентов:

  1. тип: указывает тип объекта GeoJSON, в данном случае это «Функция».
  2. геометрия: определяет геометрическую форму объекта. В данном примере это многоугольник, заданный списком координат вершин многоугольника.
  3. Свойства: содержит свойства объекта, такие как название и размер парка. Если вам нужно сохранить дополнительную информацию о функции, сохраните ее здесь.

FeatureCollection 🏞 🏝🏔

FeatureCollection — это набор географических объектов, каждый из которых представлен объектом Feature. Давайте представим, что у нас есть город Мюнхен, и мы хотим создать коллекцию FeatureCollection для всех парков города.

Вот как может выглядеть пример FeatureCollection для города Мюнхена и его парков. Как видите, FeatureCollection — это просто «массив» FeatureCollection с дополнительными полями. .

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "name": "Olympic Park",
        "size": "85 hectares"
      },
      "geometry": {
        "coordinates": [ [...] ],
        "type": "Polygon"
      }
    },
    {
      "type": "Feature",
      "properties": {
        "name": "English garden",
        "size": "384 hectares",
      }
,
      "geometry": {
        "coordinates": [ [...] ],
        "type": "Polygon"
      }
    },
    {
      "type": "Feature",
      "properties": {
        "name": "Hirschgarten",
        "size": "40 hectares",
      },
      "geometry": {
        "coordinates": [ [...] ],
        "type": "Polygon"
      }
    },
    ....

Вот основные поля объекта FeatureCollection:

  1. «type»: в этом поле указывается тип объекта, который в данном случае будет «FeatureCollection», что означает, что это набор функций.
  2. «функции»: это поле содержит массив функций.
  3. «bbox»: это поле является необязательным ограничивающим прямоугольником, представляющим минимальный ограничивающий прямоугольник, содержащий все объекты в коллекции. Он представлен в виде массива из четырех чисел, где первые два представляют нижний левый угол ограничивающей рамки, а последние два представляют верхний правый угол.
  4. «метаданные»: это поле также является необязательным и содержит дополнительные метаданные или информацию о FeatureCollection. По сути, это объект JSON, который может содержать любое количество полей в зависимости от приложения или варианта использования.

Вы можете хранить все виды информации и добавлять дополнительные поля к корневым объектам Feature и FeatureCollection, но если вы сделаете это, ваши данные больше не будут соответствовать стандартам GeoJSON, хотя ваш код или приложение могут по-прежнему работать.

Также хотелось бы напомнить об очень удобном инструменте для изучения формата GeoJSON -› geojson.io. Там вы можете рисовать и видеть необработанные данные любого формата, описанного выше.

Это все на сегодня! Следите за обновлениями!

Свяжитесь со мной в LinkedIn 🚀