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

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


ru:airlay:importformat

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:airlay:importformat [2020/02/01 14:34]
Калинин Александр Игоревич [Иерархическая связность объектов.]
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**.
  
 ==== Поля ==== ==== Поля ====
Строка 122: Строка 122:
  
 Объект иерархии содержит: Объект иерархии содержит:
 +
 **"name" : string** уникальное название иерархии и массив связей "links" **"name" : string** уникальное название иерархии и массив связей "links"
  
Строка 183: Строка 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.1580542474.txt.gz · Последнее изменение: 2020/02/01 14:34 — Калинин Александр Игоревич