1) В описании xsd у элемента tSpelementUnitZUOut есть атрибут SuNmb, который описывается так: "Номер части элемента (порядок обхода)".
2) У tOrdinateOut есть NumGeopoint - Номер точки (межевой точки)
3) У tBorder есть три атрибута :
Spatial - Порядковый номер элемента контура
Point1 - Порядковый номер точки1 в элементе
Point2 - Порядковый номер точки2 в элементе
Т.е. чтобы мне выяснить что за ребро описано и с какими номерами точек, то по идее нужно сделать как-то так:
///Код упростил и убрал доп проверки.
И это работало с выписками 5-ой версии.
Теперь получили выписку где значения SuNmb, Point1, Point2 противоречат описаниям:
Т.е. из этого файла я делаю вывод, что
SuNmb - это на самом деле номер межевой точки (а не порядок обхода, т.к. они нумеруются не по порядку)
Point1, Point2 - это на самом деле тоже номера межевых точек, а не порядковые номера в элементе.
при этом Spatial - таки Порядковый номер элемента контура
Так конечно для меня проще - зная бордер, я сразу знаю номера точек, НО это же не соответствует документации, и вдруг такое поведение изменится?
Коллеги сталкивались с таким? или элемент Бордер не анализируете? Может знаете, разработчикам куда писать по этому вопросу?
//выписку прикрепляю. кстати в выписке баг, о котором я упоминал тут: https://forum-rosreestr.ru/messages/forum25/topic465/message7908/#message7908
2) У tOrdinateOut есть NumGeopoint - Номер точки (межевой точки)
3) У tBorder есть три атрибута :
Spatial - Порядковый номер элемента контура
Point1 - Порядковый номер точки1 в элементе
Point2 - Порядковый номер точки2 в элементе
Т.е. чтобы мне выяснить что за ребро описано и с какими номерами точек, то по идее нужно сделать как-то так:
Код |
---|
protected static void GetBorderPointNames(tEntitySpatialBordersZUOut es, tBorder border, out string point1, out string point2) { var SpatialElement = es.SpatialElement[border.Spatial - 1]; var su1 = SpatialElement.SpelementUnit[border.Point1 - 1]; point1 = su1.Ordinate==null ? su1.SuNmb : su1.Ordinate.NumGeopoint; var su2 = SpatialElement.SpelementUnit[border.Point2 - 1]; point2 = su2.Ordinate==null ? su2.SuNmb : su2.Ordinate.NumGeopoint; } |
И это работало с выписками 5-ой версии.
Теперь получили выписку где значения SuNmb, Point1, Point2 противоречат описаниям:
Код |
---|
<ns3:SpatialElement> <ns3:SpelementUnit TypeUnit="Точка" SuNmb="12693"> <ns3:Ordinate X="5932889.15" Y="305709.07" OrdNmb="1" DeltaGeopoint="7.50" /> </ns3:SpelementUnit> <ns3:SpelementUnit TypeUnit="Точка" SuNmb="3014"> <ns3:Ordinate X="5932880.19" Y="305695.47" OrdNmb="1" DeltaGeopoint="7.50" /> </ns3:SpelementUnit> <ns3:SpelementUnit TypeUnit="Точка" SuNmb="3013"> <ns3:Ordinate X="5932930.25" Y="305693.14" OrdNmb="1" DeltaGeopoint="7.50" /> </ns3:SpelementUnit> <ns3:SpelementUnit TypeUnit="Точка" SuNmb="12799"> <ns3:Ordinate X="5932942.61" Y="305691.85" OrdNmb="1" DeltaGeopoint="7.50" /> </ns3:SpelementUnit> ..... <ns3:Borders> <ns3:Border Spatial="1" Point1="12693" Point2="3014"> <ns3:Edge> <ns3:Length>16.29</ns3:Length> <ns3:DirectionAngle> <ns3:Degree>236</ns3:Degree> <ns3:Minute>37</ns3:Minute> </ns3:DirectionAngle> </ns3:Edge> </ns3:Border> <ns3:Border Spatial="1" Point1="3014" Point2="3013"> <ns3:Edge> <ns3:Length>50.11</ns3:Length> <ns3:DirectionAngle> <ns3:Degree>357</ns3:Degree> <ns3:Minute>20</ns3:Minute> </ns3:DirectionAngle> </ns3:Edge> </ns3:Border> <ns3:Border Spatial="1" Point1="3013" Point2="12799"> <ns3:Edge> <ns3:Length>12.43</ns3:Length> <ns3:DirectionAngle> <ns3:Degree>354</ns3:Degree> <ns3:Minute>3</ns3:Minute> </ns3:DirectionAngle> </ns3:Edge> </ns3:Border> <ns3:Border Spatial="1" Point1="12799" Point2="3114"> <ns3:Edge> <ns3:Length>12.36</ns3:Length> <ns3:DirectionAngle> <ns3:Degree>0</ns3:Degree> <ns3:Minute>8</ns3:Minute> </ns3:DirectionAngle> </ns3:Edge> </ns3:Border> .... |
SuNmb - это на самом деле номер межевой точки (а не порядок обхода, т.к. они нумеруются не по порядку)
Point1, Point2 - это на самом деле тоже номера межевых точек, а не порядковые номера в элементе.
при этом Spatial - таки Порядковый номер элемента контура
Так конечно для меня проще - зная бордер, я сразу знаю номера точек, НО это же не соответствует документации, и вдруг такое поведение изменится?
Коллеги сталкивались с таким? или элемент Бордер не анализируете? Может знаете, разработчикам куда писать по этому вопросу?
//выписку прикрепляю. кстати в выписке баг, о котором я упоминал тут: https://forum-rosreestr.ru/messages/forum25/topic465/message7908/#message7908