Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
en:api:examples [2019/04/25 19:06] Калинин Александр Игоревич [Navigation] |
en:api:examples [2019/05/23 16:06] (текущий) Калинин Александр Игоревич [Опора] |
* [[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 = 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> |
"Действует" | "Действует" |
], | ], |
"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 | |
} | } |
] | ] |
| |
==== ЛЭП ==== | ==== ЛЭП ==== |
| Пример ЛЭП. В данном примере ЛЭП указана и с геометрией и связями, можно указать только что то одно, либо оба параметра. |
| |
<code json> | <code json> |
"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 | |
} | } |
] | ] |
</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> |
{ | { |
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" |
| } |
] | ] |
} | } |
"type" : "Feature", | "type" : "Feature", |
"properties" : { | "properties" : { |
"type" : "fulllines", | "type" : "pylons", |
"location" : "", | "location" : "", |
"addr_region" : "Алтайский край", | "addr_region" : "Алтайский край", |