====== Примеры запросов ====== ==== Navigation ==== * [[en:first|Main page]] * [[en:api:air-lay|API Air Lay]] * [[en:api:air-lay-v2|API Air Lay v2]] ==== Примеры JSON объектов для энергетики ==== ==== Сокращения и термины ==== **"AirLay Object Collector"** - Android приложение для сбора информации на местности. [[https://play.google.com/store/apps/details?id=ru.navikey.airlayobjectcollector|Google Play]] **toDoList** - это коллекция данных в которой хранятся задания для сотрудников. Данные в заданиях можно редактировать, верифицировать и собирать с помощью мобильного приложения **AirLay Object Collector** ==== Обязательные поля ==== "**type**": "**pylons\ps\lines\fulllines**" - используется для генерации GML файлов "**tplnr**": "4cba3f94-c070-403c-b0d8-fb2e4f65942d" - код технического места, или id. Задаётся настройках слоя используется для связи с другими объектами и корректным обновлением\перезаписыванием объектов. "**voltage**": Поле по которому можно будет создать виртуальные слои, расписанные по напряжению. Поля задаются в настройках слоя "**geometry**": данное поле задаётся в рамках [[https://tools.ietf.org/html/rfc7946|RFC7946]]. Предпочтительный формат "Point", "LineString", "Polygon", "MultiPolygon". Но, возможно использование "GeometryCollection" к примеру подстанции как точечный объект и площадной может храниться как один объект избегая дублирования. Сложные линии состоящие из множества различных объектов, но являющийся в атрибутивном отношении одним. Не все части ГИС поддерживают работу с "GeometryCollection". "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"** заданы две линии в первой точке и в последней. Так как линии заданы в подстанции то данная подстанция будет выше в иерархии. ==== Трансформаторная подстанция ==== { "type": "Feature", "properties": { "type": "ps", "tplnr": "4cba3f94-c070-403c-b0d8-fb2e4f65942d", "voltage": 10, "location": "", "addr_region": "Алтайский край", "addr_district": "", "addr_city": "Налобиха", "addr_street": "", "addr_house": "", "addr_building": "", "addr_pcode": "", "addr_country": "Российская Федерация", "balance": 148.0, "balance_name": "филиал Новоалтайские МЭС/ Косихинский РЭС", "kl_u": 10.0, "name": "39-13-6 (розн)", "TypeByTplnr": "Трансформаторная подстанция", "sysstat": [ "Создано" ], "usrstat": [ "Действует" ], "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": { "relations": [ { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9" }, { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142" } ] }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 42.73633, 44.40153 ], [ 42.73696, 44.40228 ], [ 42.73797, 44.40185 ], [ 42.73732, 44.4011 ], [ 42.73633, 44.40153 ] ] ] } } ==== ЛЭП ==== Пример ЛЭП. В данном примере ЛЭП указана и с геометрией и связями, можно указать только что то одно, либо оба параметра. { "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" } ] }, "geometry": { "type": "LineString", "coordinates": [ [ 92.951215, 56.005946 ], [ 92.951261, 56.005812 ], [ 92.950578, 56.005647 ], [ 92.950085, 56.005536 ], [ 92.949632, 56.00544 ], [ 92.94945, 56.005808 ] ] } } Пример ЛЭП без геометрии. В данном случаи мы имеем только **"relations"** и ЛЭП будет строиться последовательно из участков объектов, которые указаны в **"relations"**(Необходимо учитывать последовательность объектов в **"relations"**) { "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" } ] } } ==== Фидеры\Отпайки\Пролёты\Участки ==== Мы можем задавать произвольную иерархию объектов. К примеру ЛЭП имеет только **relations** с опорами. Либо ЛЭП имеет **"relations"** с Участками далее с пролётами, далее с опорами уже точечными объектами. Пример линейного объекта без заданных опор. { "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" : "" }, "geometry" : { "type" : "LineString", "coordinates" : [ [ 92.951215, 56.005946 ], [ 92.951261, 56.005812 ], [ 92.950578, 56.005647 ], [ 92.950085, 56.005536 ], [ 92.949632, 56.00544 ], [ 92.94945, 56.005808 ] ] } } Пример линейного объекта с "relations". В данном случаи так-как связь уже идёт с точечными объектами, построение топологии и геометрии будет осуществлятся в порядке следования в массиве "relations". { "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", "properties" : { "type" : "pylons", "location" : "", "addr_region" : "Алтайский край", "addr_district" : "", "addr_city" : "", "addr_street" : "", "addr_house" : "", "addr_building" : "", "addr_pcode" : "", "addr_country" : "Российская Федерация", "balance" : 122.0, "kl_u" : "0,38", "name" : "филиал Белокурихинские МЭС/ Алтайский участок", "TypeByTplnr" : "Опора", "tplnr" : "c2d22a4c-043d-4c1e-b33f-1f048f093be6", "kVoltage" : "#dedede", "voltage" : 0, "techLoss" : "", "techLossColor" : "", "sysstat" : [ "Создано" ], "usrstat" : [ "Действует" ], "additional" : "" }, "geometry" : { "type" : "Point", "coordinates" : [ 85.3538402166585, 51.9571677261215 ] } }