Инструменты пользователя

Инструменты сайта


ru:airlay:importformat

Это старая версия документа!


Описание формата загрузки и выгрузки

Формат

Формат загрузки Airlay основан на формате RFC7946 GeoJson. Были добавлены в формат relations и необязательность задачи геометрии для объектов, которые строятся на основе других объектов через relations.

Поля

«geometry»: данное поле задаётся в рамках RFC7946. Предпочтительный формат «Point», «LineString», «Polygon», «MultiPolygon». Но, возможно использование «GeometryCollection» это можно использовать для построения сложных геометрических объектов состоящих из множества различных объектов, но являющийся в атрибутивном отношении одним. К примеру можно задать точку, полигон и линия в одном объекте с одними атрибутивными значениями. Не все части ГИС поддерживают работу с «GeometryCollection».

«Polygon» должен быть обязательно зацикленным начинаться и заканчиваться на одну и ту же координату, не иметь самопересечений. «LineString» - должна состоять хотя бы из 2 точек. Координаты первые координаты -180 180; вторые -90 90;

Координаты могут быть не заданы при наличии объектов «relations» тогда геометрия наследуется у объектов от которых зависит и, которые находятся ниже по иерархии. К примеру опоры для линии. Если же не заданы «relations», «geometry» то объект уходит в «toDoList» c WARNING-ом. И сохраняется как relation.

Системные поля

«relations»: Объект задаёт связи между объектами.

«deleted»: Необязательное поле, если true, объект будет удален из базы данных.

«objectId»: Уникальный идентификатор объекта, алгоритм ищет объект с этим id в файле и затем в связанных слоях, если объект не обнаружен то во время загрузки появится WARNING о том что связь не была создана.

Иерархия между объектами строится за счёт relations. Если в объекте указан relations на другие объекты то текущий объект находиться в иерархии выше чем указанные в нём объекты.

Формат Nodes

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

{
	"lat": double
	"lon": double
	"relations": Array<ObjectId>
}

Формат Relations

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

{
  "type": "geometry",
  "systemProperties": {
    "k": "v",
    "relations": Array<ObjectId>
  },
  "properties": {
    "k": "v"
  },
  "geometryType": "Point, LineString, Polygon, ...",
  "members": [
    {
      "type": "relation",
      "id": "37afa850-82bc-4692-aaaa-e7a1bc4aa144",
      "role": "inner"
    },
 

```
{
  "type": "hierarchy",
  "systemProperties" : {
    "k": "v"
  },
  "properties": {
    "k": "v"
  },
  "members": [
    {
      "type": "relation",
      "id": "37afa850-82bc-4692-aaaa-e7a1bc4aa144",
      "role": "parent"
    },
    {
      "type": "relation",
      "id": "37afa850-82bc-4692-bbbb-e7a1bc4aa144",
      "role": "child"
    }
  ]
}
```

Формат Features

3) Features - коллекция в которой хранятся геометрические объекты с их свойствами в формате GeoJSON с нашими полями в systemProperties.

JSON

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "key": "value"
      },
      "system": {
        "relations": [
          {
            "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
          },
          {
            "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142"
          }
        ]
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              42.73633,
              44.40153
            ],
            [
              42.73696,
              44.40228
            ],
            [
              42.73797,
              44.40185
            ],
            [
              42.73732,
              44.4011
            ],
            [
              42.73633,
              44.40153
            ]
          ]
        ]
      }
    }
  ]
}

Для удаления объекта, значение properties.id(уникальное поле) должено соответствовать удаляемому объекту:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "id": "value"
      },
      "system": {
        "relations": [
          {
            "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
          },
          {
            "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142"
          }
        ],
        "deleted": true
      },
      "geometry": {
        "type": "Polygon"
      }
    }
  ]
}
ru/airlay/importformat.1562590111.txt.gz · Последнее изменение: 2019/07/08 19:48 — Калинин Александр Игоревич