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

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


ru:airlay:importformat

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:airlay:importformat [2020/02/01 14:27]
Калинин Александр Игоревич [Иерархическая связность объектов.]
ru:airlay:importformat [2021/08/27 13:26] (текущий)
Калинин Александр Игоревич [Описание формата загрузки и выгрузки формат GJR(RelationGeoJSON)]
Строка 1: Строка 1:
-====== Описание формата загрузки и выгрузки ======+====== Описание формата загрузки и выгрузки формат GJR(GeoJSONRelation) ======
  
 ==== Navigation ==== ==== Navigation ====
Строка 8: Строка 8:
 ==== Формат ==== ==== Формат ====
  
-Формат загрузки Airlay основан на формате  [[https://tools.ietf.org/html/rfc7946|RFC7946 GeoJson]]. Были добавлены в формат **relations** и необязательность задачи геометрии для объектов, которые строятся на основе других объектов через **relations**.+Формат загрузки Airlay GJR(GeoJson Relation) основан на формате  [[https://tools.ietf.org/html/rfc7946|RFC7946 GeoJson]]. Были добавлены в формат **relations** и необязательность задачи геометрии для объектов, которые строятся на основе других объектов через **relations**.
  
 ==== Поля ==== ==== Поля ====
Строка 121: Строка 121:
 Для добавления иерархических связей, необходимо задать массив связей "hierarchy". Один набор данных может содержать несколько различных связей. Для добавления иерархических связей, необходимо задать массив связей "hierarchy". Один набор данных может содержать несколько различных связей.
  
-Объект иерархии содержит "name" : "",+Объект иерархии содержит
 + 
 +**"name"string** уникальное название иерархии и массив связей "links".  
 + 
 +**"links"** содержит объекты связей уникальный идентификатор "objectId", с кем связан объект и тип связи. 
 + 
 +**"children"** задание дочернего объектакоторый содержится в родительском(текущем объекте).
  
 <code javascript> <code javascript>
Строка 144: Строка 150:
            {            {
               "name" : "direct",               "name" : "direct",
-              "elements" : [+              "links" : [
                 {                 {
-                  "type" : "aggregation\composition"+                  "type" : "children",
                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
                 },                 },
                 {                 {
-                  "type" : "aggregation\composition"+                  "type" : "children",
                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
                 }                 }
Строка 156: Строка 162:
            },            },
            {            {
-              "name" : "direct", +              "name" : "cim", 
-              "elements" : [+              "links" : [
                 {                 {
-                  "type" : "aggregation\composition"+                  "type" : "children",
                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
                 },                 },
                 {                 {
-                  "type" : "aggregation\composition"+                  "type" : "children",
                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"                   "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
                 }                 }
Строка 178: Строка 184:
 } }
 </code>  </code> 
 +
 +==== MayBeLineString ==== 
 +**"MayBeLineString"**, который задаёт проверку, если это LineString, то делаем его LineString, если можно построить MultiLineString то используем его, если есть в ссылках точки, то тоже пытаемся их строить. Для типов LineString и MultiLineString, если мы не можем однозначно построить объект то выдаём ошибку и не строим.
 +
 +<code javascript>
 +{
 +  "type": "FeatureCollection",
 +  "features": [
 +    {
 +      "type": "Feature",
 +      "properties": {
 +        "id": "value"
 +      },
 +      "system": {
 +        "relations": [
 +          {
 +            "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
 +          },
 +          {
 +            "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142"
 +          }
 +        ],        
 +        "operation": "delete"/"create"/"update"/"relationUpdate"/"coordinatesUpdate"
 +      },
 +      "geometry": {
 +        "type": "MayBeLineString"
 +      }
 +    }
 +  ]
 +}
 +</code> 
 +
 +==== LineString и MultiLineString ==== 
 +**"LineString"**, **если собственной геометрии не задано, то обязан ссылаться только на Point объекты**, в противном случаи идёт ошибка. Если образуется MultiLineString объект, выдавать ошибку.
 +
 +**"MultiLineString"**, **если собственной геометрии не задано, то обязан ссылаться только на LineString или другие MultiLineString объекты**, в противном случаи идёт ошибка.
 +
 +<code javascript>
 +{
 +  "type": "FeatureCollection",
 +  "features": [
 +    {
 +      "type": "Feature",
 +      "properties": {
 +        "id": "value"
 +      },
 +      "system": {
 +        "relations": [
 +          {
 +            "objectId": "37afa850-line-id-1"
 +          },
 +          {
 +            "objectId": "37afa850-multiline-id-1"
 +          }
 +        ],        
 +        "operation": "delete"/"create"/"update"/"relationUpdate"/"coordinatesUpdate",
 +        //Если задан полигон
 +        "barycenter": 
 +         {
 +          "type": "Point", 
 +          "coordinates": [42.73633, 44.40153]
 +         },
 +         //Если задан мульти полигон полигон
 +         "barycenter": 
 +         {
 +          "type": "MultiPoint", 
 +          "coordinates": [
 +           [42.73633, 44.40153],
 +           [42.83633, 44.50153]
 +          ]
 +         }
 +      },
 +      "geometry": {
 +        "type": "MultiLineString"
 +      }
 +    },
 +    {
 +      "type": "Feature",
 +      "properties": {
 +        "id": "37afa850-line-id-1"
 +      },
 +      "system": {
 +        "relations": [
 +          {
 +            "objectId": "37afa850-point-id-1"
 +          },
 +          {
 +            "objectId": "37afa850-point-id-2"
 +          }
 +        ],        
 +        "operation": "delete"/"create"/"update"/"relationUpdate"/"coordinatesUpdate"
 +      },
 +      "geometry": {
 +        "type": "LineString"
 +      }
 +    },
 +    {
 +      "type": "Feature",
 +      "properties": {
 +        "id": "37afa850-point-id-1"
 +      },
 +      "system": {
 +        "relations": [
 +        ],        
 +        "operation": "delete"/"create"/"update"/"relationUpdate"/"coordinatesUpdate"
 +      },
 +      "geometry": {
 +        "type": "Point",
 +        "coordinates": [
 +          85.3538402166585,
 +          51.9571677261215
 +        ]
 +      }
 +    }
 +  ]
 +}
 +</code> 
 +
 +==== Опции для задания стилей ==== 
 +В поле "system" можно дополнительно передать объект опции "options", который может содержать стили слоя для объекта. При задании конкретных стилей, объект перезапишет нужные стили в слое. Следовательно, можно задать не все стили в опциях, а только необходимые.
 +<code javascript>
 +"options" : {
 +        "lineOptions" : {
 +            "color" : "#006b00",
 +            "weight" : 3,
 +            "opacity" : 1,
 +            "maxZoom" : 30,
 +            "minZoom" : 10,
 +            "dashArray" : 0,
 +            "isDash" : false
 +        },
 +        "multiPolygonOptions" : {
 +            "color" : "#006b00",
 +            "weight" : 4,
 +            "opacity" : 1,
 +            "fillOpacity" : 0.5,
 +            "maxZoom" : 30,
 +            "minZoom" : 10,
 +            "convertToPointZoom" : 0,
 +            "dashArray" : 0,
 +            "isDash" : false
 +        },
 +        "pointOptions" : {
 +            "markerType" : "marker",
 +            "maxZoom" : 30,
 +            "minZoom" : 10,
 +            "iconOptions" : {
 +                "iconUrl" : "https://unpkg.com/leaflet@1.3.4/dist/images/marker-icon.png",
 +                "iconSize" : [ 
 +                    25, 
 +                    41
 +                ],
 +                "iconAnchor" : [ 
 +                    20, 
 +                    40
 +                ]
 +            },
 +            "markerOptions" : {
 +                "type" : "circle",
 +                "radius" : 4,
 +                "numberOfSides" : 3,
 +                "rotation" : 0,
 +                "color" : "#006b00",
 +                "weight" : 4,
 +                "fillOpacity" : 0.5,
 +                "fillColor" : "#006b00",
 +                "dashArray" : 0,
 +                "isDash" : false
 +            }
 +        }
 +    }
 +</code>
ru/airlay/importformat.1580542025.txt.gz · Последнее изменение: 2020/02/01 14:27 — Калинин Александр Игоревич