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

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


en:api:examples

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
en:api:examples [2019/04/25 19:06]
Калинин Александр Игоревич [Navigation]
en:api:examples [2019/05/23 16:06] (текущий)
Калинин Александр Игоревич [Опора]
Строка 6: Строка 6:
  
 ==== Примеры JSON объектов для энергетики ==== ==== Примеры JSON объектов для энергетики ====
-**Обязательные поля**+==== Сокращения и термины ==== 
 +**"AirLay Object Collector"** - Android приложение для сбора информации на местности. [[https://play.google.com/store/apps/details?id=ru.navikey.airlayobjectcollector|Google Play]]
  
-"type": "pylons\ps\lines\fulllines" используется для генерации GML файлов+**toDoList** это коллекция данных в которой хранятся задания для сотрудников. Данные в заданиях можно редактировать, верифицировать и собирать с помощью мобильного приложения **AirLay Object Collector**
  
-"tplnr": "4cba3f94-c070-403c-b0d8-fb2e4f65942d" - код технического места, или id. Задаётся настройках слоя используется для связи с другими объектами и корректным обновлением\перезаписыванием объектов.+==== Обязательные поля ====
  
-"voltage": Поле по которому можно будет создать виртуальные слои, расписанные по напряжению. Поля задаются в настройках слоя+"**type**": "**pylons\ps\lines\fulllines**" - используется для генерации GML файлов
  
-**Системные поля**+"**tplnr**": "4cba3f94-c070-403c-b0d8-fb2e4f65942d" - код технического места, или id. Задаётся настройках слоя используется для связи с другими объектами и корректным обновлением\перезаписыванием объектов.
  
-"relations": Объект задаёт связи между объектами. +"**voltage**": Поле по которому можно будет создать виртуальные слои, расписанные по напряжению. Поля задаются в настройках слоя
-"objectId": Уникальный идентификатор объекта, алгоритм ищет объект с этим id в файле и затем в связанных слоях, если объект не обнаружен то во время загрузки появится WARNING о том что связь не была создана. +
-"level": Уровень связи между объектами. 1 для равных объектов к примеру подвесов на опорах. 2 и больше задают связь между объектами находящимся в зависимости.+
  
-К примеру объект линия связан с другой линией в этой же точке level:1Подстанция связана с линией level:2так же линия связана с фидером в точке level:2+"**geometry**": данное поле задаётся в рамках [[https://tools.ietf.org/html/rfc7946|RFC7946]]. Предпочтительный формат "Point", "LineString", "Polygon", "MultiPolygon". Но, возможно использование "GeometryCollection" к примеру подстанции как точечный объект и площадной может храниться как один объект избегая дублирования. Сложные линии состоящие из множества различных объектов, но являющийся в атрибутивном отношении однимНе все части ГИС поддерживают работу с "GeometryCollection"
-"pointPosition": связь объекта в точке, указывается точка в которой объект связан, если это опора то pointPosition всегда 1, так же pointPosition = 1 если это точечная подстанция. Если подстанция является площадным объектом то pointPosition не указывается. + 
 +"Polygon" должен быть обязательно зацикленным начинаться и заканчиваться на одну и ту же координату, не иметь самопересечений
 +"LineString" - должна состоять хотя бы из 2 точек. 
 +Координаты первые координаты -180 180; вторые -90 90; 
 + 
 +Координаты могут быть не заданы при наличии объектов **"relations"** тогда геометрия наследуется у объектов от которых зависит и, которые находятся ниже по иерархии. К примеру опоры для линии. Если же не заданы **"relations"**, "**geometry**" то объект уходит в "toDoList" c WARNING-ом. И сохраняется как **relation**. К примеру можно задать ЛЭП связанную с участкамидалее с пролётами, но без геометрии и опорПозже создать опоры и собрать их с помощью **"AirLay Object Collector"** 
 +==== Системные поля ==== 
 + 
 + 
 +"**relations**": Объект задаёт связи между объектами. 
 + 
 +"**objectId**": Уникальный идентификатор объекта, алгоритм ищет объект с этим id в файле и затем в связанных слоях, если объект не обнаружен то во время загрузки появится WARNING о том что связь не была создана. 
 + 
 +Иерархия между объектами строиться за счёт **relations**. Если в объекте указан **relations** на другие объекты к примеру пролёт имеет **relations** с перечислением id опорто пролёт имеет уровень иерархии выше чем у опоры. В данном случаи линейный объект выше точечного. 
 +Может быть у точечного объекта быть задан **relations** с указанием на линии, тогда точечный объект выше линейного. К примеру подстанция при наличии **relations** на линии будет в иерархии выше. 
 + 
 + 
 +При отсутствии данных о топологии или расположении точки в линии необходимо проставить значение "0". При значении "0" объект попадёт в **toDoList** 
 + 
 + 
 +==== Примеры ==== 
 +Все данные записанные в атрибуты объекта далее можно будет использовать. Они задаются ключ-значение в **"properties"**. Кроме значения к примеру напряжения "voltage": 10 (ключ-int) можно хранить ключ - массив "sysstat": ["Создано", "Действует"] состояние подстанции. Можно выполнить хранение ключ-объект пример поле "additional" там заданы поля трансформатора. 
 + 
 +В **"relations"** заданы две линии в первой точке и в последней. Так как линии заданы в подстанции то данная подстанция будет выше в иерархии.
  
-В следующем примере мы имеем связи для ЛЭП, она связана с первой точкой другого ЛЭП(37afa850-82bc-4692-b7c7-e7a1bc4aa144) это подвес. Далее в 3 точке ЛЭП связана на уровень ниже с фидером. "level": 3 это связи с опорами это 1, 2 и 3 точки ЛЭП соответственно. 
-<code> 
-"system": { 
-    "relations": [ 
-      { 
-        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144", 
-        "level": 1, 
-        "pointPosition": 1 
-      }, 
-      { 
-        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145", 
-        "level": 2, 
-        "pointPosition": 3 
-      }, 
-      { 
-        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6", 
-        "level": 3, 
-        "pointPosition": 1 
-      }, 
-      { 
-        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be7", 
-        "level": 3, 
-        "pointPosition": 2 
-      }, 
-      { 
-        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be8", 
-        "level": 3, 
-        "pointPosition": 3 
-      } 
-    ] 
-  } 
-  <\code> 
 ==== Трансформаторная подстанция ==== ==== Трансформаторная подстанция ====
 <code json> <code json>
Строка 83: Строка 73:
       "Действует"       "Действует"
     ],     ],
-    "additional": ""+    "additional"
 +            "transformer: [  
 +                2500.00, "2500.00" 
 +            ], 
 +            "res_pow_cons_cotr_appl" : 1.546708, 
 +            "nagr_nminus1" : 2625.0, 
 +            "pow_cotr" : 0.113985, 
 +            "pow_appl" : 0.0306, 
 +            "res_box" : { 
 +                "10" : 1 
 +            } 
 +        }
   },   },
   "system": {   "system": {
     "relations": [     "relations": [
       {       {
-        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"+        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9"
-        "level": 2, +
-        "pointPosition" : 1+
       },       },
       {       {
-        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142"+        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142"
-        "level": 2, +
-        "pointPosition" : 3+
       }       }
     ]     ]
Строка 130: Строка 127:
  
 ==== ЛЭП ==== ==== ЛЭП ====
 +Пример ЛЭП. В данном примере ЛЭП указана и с геометрией и связями, можно указать только что то одно, либо оба параметра. 
  
 <code json> <code json>
Строка 165: Строка 163:
     "relations": [     "relations": [
       {       {
-        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144"+        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144"
-        "level": 1, +
-        "pointPosition": 1+
       },       },
       {       {
-        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145"+        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145"
-        "level": 2, +
-        "pointPosition": 3+
       },       },
       {       {
-        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6"+        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6"
-        "level": 3, +
-        "pointPosition": 1+
       }       }
     ]     ]
Строка 214: Строка 206:
 </code> </code>
  
-==== Фидер ====+Пример ЛЭП без геометрии. В данном случаи мы имеем только **"relations"** и ЛЭП будет строиться последовательно из участков объектов, которые указаны в **"relations"**(Необходимо учитывать последовательность объектов в **"relations"**)  
 +<code json> 
 +
 +  "type": "Feature", 
 +  "properties":
 +    "type": "fulllines", 
 +    "location": "", 
 +    "addr_region": "Алтайский край", 
 +    "addr_district": "", 
 +    "addr_city": "", 
 +    "addr_street": "", 
 +    "addr_house": "", 
 +    "addr_building": "", 
 +    "addr_pcode": "", 
 +    "addr_country": "Российская Федерация", 
 +    "balance": 119.0, 
 +    "kl_u": "0,38", 
 +    "name": "филиал Алейские МЭС/ Усть-Пристанский участок", 
 +    "TypeByTplnr": "ЛЭП", 
 +    "tplnr": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9", 
 +    "kVoltage": "#dedede", 
 +    "voltage": 10, 
 +    "techLoss": 0.0, 
 +    "techLossColor": "#ddb600", 
 +    "sysstat":
 +      "Создано" 
 +    ], 
 +    "usrstat":
 +      "Действует" 
 +    ], 
 +    "additional": "" 
 +  }, 
 +  "system":
 +    "relations":
 +      { 
 +        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144" 
 +      }, 
 +      { 
 +        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145" 
 +      }, 
 +      { 
 +        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6" 
 +      } 
 +    ] 
 +  } 
 +
 + 
 +</code> 
 +==== Фидеры\Отпайки\Пролёты\Участки ==== 
 +Мы можем задавать произвольную иерархию объектов. К примеру ЛЭП имеет только **relations** с опорами. Либо ЛЭП имеет **"relations"** с Участками далее с пролётами, далее с опорами уже точечными объектами.
  
 +Пример линейного объекта без заданных опор.
 + 
 <code json> <code json>
 { {
Строка 274: Строка 317:
         56.005808         56.005808
       ]       ]
 +    ]
 +  }
 +}
 +
 +</code>
 +
 +Пример линейного объекта с "relations". В данном случаи так-как связь уже идёт с точечными объектами,  построение топологии и геометрии будет осуществлятся в порядке следования в массиве "relations".
 +
 +<code json>
 +{
 +  "type" : "Feature",
 +  "properties" : {
 +    "type" : "lines",
 +    "location" : "",
 +    "addr_region" : "Алтайский край",
 +    "addr_district" : "",
 +    "addr_city" : "",
 +    "addr_street" : "",
 +    "addr_house" : "",
 +    "addr_building" : "",
 +    "addr_pcode" : "",
 +    "addr_country" : "Российская Федерация",
 +    "balance" : 119.0,
 +    "kl_u" : "0,38",
 +    "name" : "филиал Алейские МЭС/ Усть-Пристанский участок",
 +    "TypeByTplnr" : "Фидер",
 +    "tplnr" : "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9",
 +    "kVoltage" : "#dedede",
 +    "voltage" : 10,
 +    "techLoss" : 0.0,
 +    "techLossColor" : "#ddb600",
 +    "sysstat" : [
 +      "Создано"
 +    ],
 +    "usrstat" : [
 +      "Действует"
 +    ],
 +    "additional" : ""
 +  },
 +  "system": {
 +    "relations": [
 +      {
 +        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144"
 +      },
 +      {
 +        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145"
 +      },
 +      .....
 +      .....
 +      {
 +        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6"
 +      }
     ]     ]
   }   }
Строка 286: Строка 381:
   "type" : "Feature",   "type" : "Feature",
   "properties" : {   "properties" : {
-    "type" : "fulllines",+    "type" : "pylons",
     "location" : "",     "location" : "",
     "addr_region" : "Алтайский край",     "addr_region" : "Алтайский край",
en/api/examples.1556193973.txt.gz · Последнее изменение: 2019/04/25 19:06 — Калинин Александр Игоревич