Это старая версия документа!
«type»: «pylons\ps\lines\fulllines» - используется для генерации GML файлов
«tplnr»: «4cba3f94-c070-403c-b0d8-fb2e4f65942d» - код технического места, или id. Задаётся настройках слоя используется для связи с другими объектами и корректным обновлением\перезаписыванием объектов.
«voltage»: Поле по которому можно будет создать виртуальные слои, расписанные по напряжению. Поля задаются в настройках слоя
«geometry»: данное поле задаётся в рамках RFC7946. Предпочтительный формат «Point», «LineString», «MultiLineString», «Polygon», «MultiPolygon». Но, возможно использование «GeometryCollection» к примеру подстанции как точечный объект и площадной может храниться как один объект избегая дублирования. Сложные линии состоящие из множества различных объектов, но являющийся в атрибутивном отношении одним. Не все части ГИС поддерживают работу с «GeometryCollection».
«Polygon» должен быть обязательно зацикленным начинаться и заканчиваться на одну и ту же координату, не иметь самопересечений. «LineString» - должна состоять хотя бы из 2 точек. Координаты первые координаты -180 180; вторые -90 90;
Координаты могут быть не заданы при наличии объектов «relations» тогда геометрия наследуется у объектов от которых зависит и, которые находятся ниже по иерархии. К примеру опоры для линии. Если же не заданы «relations», «geometry» то объект уходит в «toDoList» c WARNING-ом. И сохраняется как relation. К примеру можно задать ЛЭП связанную с участками, далее с пролётами, но без геометрии и опор. Позже создать опоры и собрать их с помощью «AirLay Object Collector»
Разница построения «MultiLineString» и «LineString». В первом случаи для «MultiLineString» алгоритм строит множество линей на основе «relations» без какой либо обработки, объекты лежащие в основе могут быть не связанными и не иметь общих точек. «LineString» это один линейный объект, поэтому после получения множества линий алгоритм пытается построить одну линию перебирая общие концы линейных объектов. Если алгоритм не может из ВСЕХ кусков линии построить один целый объект, выводится ошибка.
«relations»: Объект задаёт связи между объектами.
«objectId»: Уникальный идентификатор объекта, алгоритм ищет объект с этим id в файле и затем в связанных слоях, если объект не обнаружен то во время загрузки появится WARNING о том что связь не была создана.
Иерархия между объектами строиться за счёт relations. Если в объекте указан relations на другие объекты к примеру пролёт имеет relations с перечислением id опор, то пролёт имеет уровень иерархии выше чем у опоры. В данном случаи линейный объект выше точечного. Может быть у точечного объекта быть задан relations с указанием на линии, тогда точечный объект выше линейного. К примеру подстанция при наличии relations на линии будет в иерархии выше.
При отсутствии данных о топологии или расположении точки в линии необходимо проставить значение «0». При значении «0» объект попадёт в toDoList
Все данные записанные в атрибуты объекта далее можно будет использовать. Они задаются ключ-значение в «properties». Кроме значения к примеру напряжения «voltage»: 10 (ключ-int) можно хранить ключ - массив «sysstat»: [«Создано», «Действует»] состояние подстанции. Можно выполнить хранение ключ-объект пример поле «additional» там заданы поля трансформатора.
В «relations» заданы две линии в первой точке и в последней. Так как линии заданы в подстанции то данная подстанция будет выше в иерархии.
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "type": "ps", "tplnr": "4cba3f94-c070-403c-b0d8-fb2e4f65942d", "voltage": 10, "address": "Алтайский край", "balance": 148.0, "balanceName": "филиал Новоалтайские МЭС/ Косихинский РЭС", "name": "39-13-6 (розн)", "TypeByTplnr": "Трансформаторная подстанция", "sysstat": "Создано", "usrstat": "Действует", "additional": { "transformer": [ 2500.00, 2500.00 ] } }, "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": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "type": "fulllines", "addr": "Алтайский край", "country": "Российская Федерация", "balance": 119.0, "name": "филиал Алейские МЭС/ Усть-Пристанский участок", "TypeByTplnr": "ЛЭП", "tplnr": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9", "voltage": 10, "sysstat": [ "Создано" ], "usrstat": [ "Действует" ] }, "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": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "type": "fulllines", "addr": "Алтайский край", "country": "Российская Федерация", "balance": 119.0, "name": "филиал Алейские МЭС/ Усть-Пристанский участок", "TypeByTplnr": "ЛЭП", "tplnr": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9", "voltage": 10, "techLoss": 0.0, "sysstat": [ "Создано" ], "usrstat": [ "Действует" ] }, "system": { "relations": [ { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144" }, { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145" }, { "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6" } ] }, "geometry": { "type": "LineString" } } ] }
Мы можем задавать произвольную иерархию объектов. К примеру ЛЭП имеет только relations с опорами. Либо ЛЭП имеет «relations» с Участками далее с пролётами, далее с опорами уже точечными объектами.
Пример линейного объекта без заданных опор.
{ "type": "FeatureCollection", "features": [ { "type" : "Feature", "properties" : { "type" : "lines", "addr" : "Алтайский край", "country" : "Российская Федерация", "balance" : 119.0, "name" : "филиал Алейские МЭС/ Усть-Пристанский участок", "TypeByTplnr" : "Фидер", "tplnr" : "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9", "voltage" : 10, "techLoss" : 0.0, "techLossColor" : "#ddb600", "sysstat" : [ "Создано" ], "usrstat" : [ "Действует" ] }, "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": "FeatureCollection", "features": [ { "type" : "Feature", "properties" : { "type" : "lines", "addr" : "Алтайский край", "addr_country" : "Российская Федерация", "balance" : 119.0, "name" : "филиал Алейские МЭС/ Усть-Пристанский участок", "TypeByTplnr" : "Фидер", "tplnr" : "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9", "kVoltage" : "#dedede", "voltage" : 10, "techLoss" : 0.0, "techLossColor" : "#ddb600", "sysstat" : [ "Создано" ], "usrstat" : [ "Действует" ] }, "system": { "relations": [ { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa144" }, { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa145" }, ..... ..... { "objectId": "c2d22a4c-043d-4c1e-b33f-1f048f093be6" } ] }, "geometry": { "type": "LineString" } } ] }
Мы можем составить линию из множества объектов точек и линий так-же учитывая собственную геометрию. В массиве «relations» необходимо указать объект «geometry»: 1. Данный объект задаёт расположение собственной геометрии относительно объектов, с которыми осуществляется связь.
К примеру: мы имеем кабельную линию со своей геометрией, на концах мы указываем id relations связанных объектов, подстанция и опора. Тогда к линейному объекту будут добавлены дополнительные точки на концах линии.
{ "type": "FeatureCollection", "features": [ { "type" : "Feature", "properties" : { "type" : "lines", "addr" : "Алтайский край", "country" : "Российская Федерация", "balance" : 119.0, "tplnr" : "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9", "voltage" : 10, "techLoss" : 0.0 }, , "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 ] ] } } ] }
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "type": "pylons", "location": "", "addr": "Алтайский край", "country": "Российская Федерация", "balance": 122.0, "name": "филиал Белокурихинские МЭС/ Алтайский участок", "TypeByTplnr": "Опора", "tplnr": "c2d22a4c-043d-4c1e-b33f-1f048f093be6", "voltage": 110, "sysstat": [ "Создано" ], "usrstat": [ "Действует" ] }, "geometry": { "type": "Point", "coordinates": [ 85.3538402166585, 51.9571677261215 ] } } ] }
Мы можем рассмотреть на примере загрузки «Порталов». В данном примере мы имеем ветвление линии на конце перед подстанцией. Some pylon 1 это опора в которой идёт ветвление(общая опора). Далее мы имеем Some pylon 2, Some pylon 3(«Порталы»). Мы можем создать 2 линейных объекта для связи опор Some line 1, Some line 2. После этого идёт их объединение в множество линий Some big line, для этого идёт указание «MultiLineString» в типе геометрии.
{ "type": "FeatureCollection", "features": [ [ { "type": "Feature", "properties": { "type": "lines", "name": "Some big line", "tplnr": "some-big-line-name" }, "system": { "relations": [ { "some-line-name-1" }, { "some-line-name-2" } ] }, "geometry": { "type": "MultiLineString" } }, { "type": "Feature", "properties": { "type": "lines", "name": "Some line 1", "tplnr": "some-line-name-1" }, "system": { "relations": [ { "some-name-1" }, { "some-name-2" } ] }, "geometry": { "type": "LineString" } }, { "type": "Feature", "properties": { "type": "lines", "name": "Some line 2", "tplnr": "some-line-name-2" }, "system": { "relations": [ { "some-name-1" }, { "some-name-3" } ] }, "geometry": { "type": "LineString" } }, { "type": "Feature", "properties": { "type": "pylons", "name": "Some pylon 1", "tplnr": "some-name-1" }, "geometry": { "type": "Point", "coordinates": [ 85.3538402166585, 51.9571677261215 ] } }, { "type": "Feature", "properties": { "type": "pylons", "name": "Some pylon 2", "tplnr": "some-name-2" }, "geometry": { "type": "Point", "coordinates": [ 85.4538402166585, 51.9571677261215 ] } }, { "type": "Feature", "properties": { "type": "pylons", "name": "Some pylon 3", "tplnr": "some-name-3" }, "geometry": { "type": "Point", "coordinates": [ 85.3538402166585, 51.7571677261215 ] } } ] ] }
Мы можем задать заявку с привязкой к некоторой точке.
{ "type": "FeatureCollection", "features": [ { "properties": { "documentNumber": "00000000",//Номер заявки "date": 1563778702,//Дата Unix time "power": 2267.0,// Мощность "status": "Заключен"/"Направлен заявителю", // Статус "capitalExpenditures" : true/false //Капитальные затраты "dataEnd": 1563778702, "voltage": 110.0, "category": 3, "mainPointTPLNR" : "VS00****/Опора some pylon name ", "mainPsTPLNR": "PS110***/ПС 110 кВ Some PS name", "reservePointTPLNR": "", "reservePsTPLNR": "", "ztuDocumentNumber": "000000000000000800000000"//Техполе }, "type": "Feature", "geometry": { "type": "Point", "coordinates": [ 50.54754, 50.23724 ] } } ] }
Мы можем задать потери с привязкой к подстанции через relations в поле System.
{ "type": "FeatureCollection", "features": [ { "properties" : { "uniqueKey" : 20160915031311, "date" : 1563778702, "fiderInput" : 21080.0,//Отпуск в сеть кВт/ч "lossAll" : 1130.0,// общие потери "lossAllPercent" : 9.64,// потери в процентах "All" : 200000.0,//По кВт/ч "LegalEntity" : 214.0,//Общий Юр. Лицам "Individual" : 19740.0,//Общий Физ лицам "countLegalEntity" : 1,// Количество Юр. Лиц "countIndividual" : 51,// Количество Физ. Лиц "countAll" : 52,//Общее количество "countLegalEntityASKUE" : 1,//Абоненты АИИСКУЭ "countIndividualASKUE" : 48, "countAllASKUE" : 49, "countNonASKUE" : 3,//Абоненты без АИИСКУЭ "color" : "GREEN", "tplnr" : "KS**" }, "type": "Feature" } ] }
{ "type": "FeatureCollection", "features": [ { "properties": { "id": 1, "dzo": "Филиал", "po": "Некоторое ЭС", "res": "Некоторое РЭС", "address": "г.Красноярск, ул.Ленина, 93", "mark": "АД-100С", "type": "передвижной", "power": 100.0, "date": 2014, "typeOfTrans": "погрузка", "fuelSupply": 8,//Запас топлива "responsible": "Иванов Иван Иванович", "position": "Мастер", "phone": "8-000-00-00-000", "readiness": "да",//Готовность к работе "bortTerminal": "нет",//Установлен бортовой терминал "dut": "нет"//Устанолен ДУТ }, "geometry": { "type": "Point", "coordinates": [ 60.000000, 50.000000 ] } } ] }
{ "type": "FeatureCollection", "features": [ { "properties": { "id": 1, "dzo": "Филиал", "po": "Некоторое ЭС", "res": "Некоторое РЭС", "balanceId" : "80008400", "address": "г.Красноярск, ул.Ленина, 93", "rig": "Наименование оборудования", "typeRig": "Тип оборудования", "responsible": "Иванов Иван Иванович", "position": "Мастер", "phone": "8-000-00-00-000" }, "geometry": { "type": "Point", "coordinates": [ 60.000000, 50.000000 ] } } ] }
{ "type": "FeatureCollection", "features": [ { "properties": { "id": 1, "dzo": "Филиал", "po": "Некоторое ЭС", "res": "Некоторое РЭС", "balanceId" : "80008400", "address": "г.Красноярск, ул.Ленина, 93", "type": "Тип", "responsible": "Иванов Иван Иванович", "position": "Мастер", "phone": "8-000-00-00-000" }, "geometry": { "type": "Point", "coordinates": [ 60.000000, 50.000000 ] } } ] }
{ "type": "FeatureCollection", "features": [ { "properties": { "id": 1, "dzo": "Филиал", "po": "Некоторое ЭС", "res": "Некоторое РЭС", "balanceId" : "80008400" "address": "г.Красноярск, ул.Ленина, 93", "type": "Тип", "responsible": "Иванов Иван Иванович", "position": "Мастер", "phone": "8-000-00-00-000" }, "geometry": { "type": "Point", "coordinates": [ 60.000000, 50.000000 ] } } ] }