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

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


ru:airlay:examples

Это старая версия документа!


Примеры запросов

Примеры JSON объектов для энергетики

Обязательные поля

«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"
      }
    }
 
  ]
}

Опора

{
  "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
        ]
      }
    }
  ]
}

Пример объектов для MultiLineString

Мы можем рассмотреть на примере загрузки «Порталов». В данном примере мы имеем ветвление линии на конце перед подстанцией. Some pylon 1 это опора в которой идёт ветвление(общая опора). Далее мы имеем Some pylon 2, Some pylon 3(«Порталы»). Мы можем создать 2 линейных объекта для связи опор Some line 1, Some line 2. После этого идёт их объединение в множество линий Some big line, для этого идёт указание «MultiLineString» в типе геометрии.

[
{
  "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
    ]
  }
}
]
ru/airlay/examples.1562764793.txt.gz · Последнее изменение: 2019/07/10 20:19 — Калинин Александр Игоревич