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

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


en:api:examples

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
en:api:examples [2019/04/25 19:06]
Калинин Александр Игоревич [Navigation]
en:api:examples [2019/05/17 20:49]
Калинин Александр Игоревич
Строка 4: Строка 4:
   * [[en:api:air-lay|API Air Lay]]   * [[en:api:air-lay|API Air Lay]]
   * [[en:api:air-lay-v2|API Air Lay v2]]   * [[en:api:air-lay-v2|API Air Lay v2]]
-  * [[en:api:examples|Примеры данных]] 
  
 ==== Примеры 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 если это точечная подстанция. Если подстанция является площадным объектом то 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** на линии будет в иерархии выше. 
 + 
 +"**pointPosition**": через данный атрибут можно задать топологию связных объектов. Может принимать значения int(от 0 до INT_MAX) Используется для связи линия и точка. При задании связей линейного объекта и точечных объектов указывается позиция точки в линии, для построения геометрии линии на основе точечных объектов. К примеру пролёт не имеет геометрии, мы добавляем в связи опоры, которые имеют некий порядокзатем мы на основе них можем построить линейный объект
 + 
 +При отсутствии данных о топологии или расположении точки в линии необходимо проставить значение "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>
Строка 84: Строка 74:
       "Действует"       "Действует"
     ],     ],
-    "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": {
Строка 90: Строка 91:
       {       {
         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9",         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9",
-        "level": 2, 
         "pointPosition" : 1         "pointPosition" : 1
       },       },
       {       {
         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142",         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142",
-        "level": 2, +        "pointPosition"9000
-        "pointPosition"3+
       }       }
     ]     ]
Строка 131: Строка 130:
  
 ==== ЛЭП ==== ==== ЛЭП ====
 +Пример ЛЭП. В данном примере ЛЭП указана и с геометрией и связями, можно указать только что то одно, либо оба параметра. 
  
 <code json> <code json>
Строка 167: Строка 167:
       {       {
         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144",         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144",
-        "level": 1, 
         "pointPosition": 1         "pointPosition": 1
       },       },
       {       {
         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145",         "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145",
-        "level": 2, 
         "pointPosition": 3         "pointPosition": 3
       },       },
       {       {
         "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6",         "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6",
-        "level": 3, 
         "pointPosition": 1         "pointPosition": 1
       }       }
Строка 215: Строка 212:
 </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>
 { {
Строка 275: Строка 323:
         56.005808         56.005808
       ]       ]
 +    ]
 +  }
 +}
 +
 +</code>
 +
 +Пример линейного объекта с "relations". В данном случаи так-как связь уже идёт с точечными объектами, необходимо указать "pointPosition" - int, так-как идёт построение топологии и геометрии. Значение обозначает расположение точечного объекта в линии.
 +
 +<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",
 +        "pointPosition": 1
 +      },
 +      {
 +        "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145",
 +        "pointPosition": 2
 +      },
 +      .....
 +      .....
 +      {
 +        "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6",
 +        "pointPosition": 9000
 +      }
     ]     ]
   }   }
en/api/examples.txt · Последнее изменение: 2019/05/23 16:06 — Калинин Александр Игоревич