Это старая версия документа!
Существует два типа связей геометрические и иерархические. Для корректной работы инструментов редактирования связей\пролётов и корректного отображения необходимо придерживаться ниже указанной топологии.
В текущей топологии участвуют объекты воздушная линия, участок воздушной линии, пролёт воздушной линии, опора, точечная подстанция(ПС, ТП, РП, КТП), площадная подстанция, РУ, кабельная линия, кабельный участок, муфта, концы кабельного участка.
Все описанные объекты имеют различный тип, который необходимо указать в атрибутах в виде атрибута type.
Далее нам необходимо построить связи между объектами. Геометрические связи позволяют строить одни объекты на основе геометрии других объектов. В том числе при редактировании геометрии изменять информацию сразу во всех связанных объектах.
Для создания геометрических связей используется специальный атрибут relations. Как показано в примере ниже
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "id": "value" }, "system": { "relations": [ { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9" }, { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142" } ] "operation": "delete"/"create"/"update"/"relationUpdate"/"coordinatesUpdate" }, "geometry": { "type": "Polygon" } } ] }
Рассмотрим соединение ВЛ - ТП, в данном примере мы имеем линию, где на конце находится точечный объект ТП. Если рассматривать иерархию сверху вниз, то на верху стоит линия, которая имеет связи с участками и система строит геометрию на основе дочерних элементов. Далее, участок ссылается на пролёты, так-же геометрия строится на основе них. Пролёты в свою очередь представлены линией из двух точек на конце, опора и ТП. В середине линии пролёты ссылаются на две опоры. В конечном счёте вся геометрия строится на координатах опор и ТП или других объектах на концах линии.
Система имеет инструмент редактирования связей редактор пролётов. Инструмент работает от нижнего уровня точечных объектов, опор, точечных ПС, ТП, РП, РУ, муфт и крайних точек кабельных линий. Чтобы найти связи доступные для редактирования используются геометрические и иерархические связи с родительскими объектами.
Иерархические связи необходимы для создания связи между объектами, если явной геометрической связи нет. К примеру связи ВЛ и площадной ПС. Допустим система не имеет явной геометрической связи с подстанцией и мы хотим задать её в системе. Мы знаем, что ПС должна иметь связь с ВЛ и нам для работы редактора пролётов необходимо это указать. ПС представлена полигоном, если сделать геометрическую связь линии и полигона, то объект ВЛ будет строится, как полигон, что не является корректным. Поэтому используется иерархическая связь hierarchy с ключевым названием direct
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "id": "value" }, "system": { "relations": [ { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9" }, { "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa142" } ], "hierarchy" : [ { "name" : "direct", "links" : [ { "type" : "children", "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9" }, { "type" : "children", "objectId": "37afa850-82bc-4692-b7c7-e7a1bc4aa1c9" } ] } ] "operation": "delete"/"create"/"update"/"relationUpdate"/"coordinatesUpdate" }, "geometry": { "type": "Polygon" } } ] }
Рассмотрим соединение ВЛ - ПС, в данном примере мы имеем линию, где на конце находится точечный объект РУ, который связан через ПС с линией с помощью иерархической связи. Изначально система не знает о геометрической связи РУ и пролёта на конце линии. Для работы редактора пролётов мы указываем иерархическую связь ПС и линии, тогда мы сможем связать пролёты данной линии и особые точки ПС. В данном случаи мы не можем напрямую связать площадную ПС и линию, так-как необходимо наличии точки построения линии. В качестве особой точки выступает объект РУ, который находится на территории площадной подстанции.