RUS  ENG 

Точка пересечения двух polyline

Страницы: 1
RSS
Точка пересечения двух polyline
 
Добрый день!

Подскажите, как найти точку пересечения двух полилиний (участки сети, смежные сети и т.п.).
Единственное что нашел в документации это через SQL запросы. Для двух линий: t1.geometry.Intersection(t2.geometry) - выдает пустое значение. Хотя для связки полигон-полилиния работает отлично.

Какие еще есть варианты?
 
Цитата
Добрый день!

Подскажите, как найти точку пересечения двух полилиний (участки сети, смежные сети и т.п.).
Единственное что нашел в документации это через SQL запросы. Для двух линий: t1.geometry.Intersection(t2.geometry) - выдает пустое значение. Хотя для связки полигон-полилиния работает отлично.

Какие еще есть варианты?
Добрый день. Через скрипт два объекта пересекаются так:
Код
Sub CrossLines

  Set Out = OpenOutputChannel ("")
  Out.Clear

  'Первый слой
  Set L1 = Zulu.ActiveMapDoc.Layers.Item(1)
  'Второй слой
  Set L2 = Zulu.ActiveMapDoc.Layers.Item(2)
  
  Set Geo1 = CreateObject("ZuluLib.ZGeoObject")
  Set Geo2 = CreateObject("ZuluLib.ZGeoObject")
  
  'Объект первого слоя
  Geo1.Init L1.Elements.Item(2609), L1.GetCRS  
  
  'Объект второого слоя
  Geo2.Init L2.Elements.Item(1679), L2.GetCRS  
    
  Set Geom = CreateObject("ZuluLib.ZGeometry")

  'Точки пересечения объектов  
  Set Pts = Geom.CrossGeoObjects(Geo1, Geo2, 0)

  Out.PutLine "count=" + CStr(Pts.Count)  
  
  for i = 1 to Pts.Count     
  
  Out.PutLine "x=" + CStr(Pts.GetX(i)) + " y=" + CStr(Pts.GetY(i))
  
  Next  

End Sub

Но если все объекты одного слоя с объектами другого, в лоб будет долго. С SQL посмотрим
 
Цитата
Цитата
Добрый день. Через скрипт два объекта пересекаются так:
Код
 Sub CrossLines

 ...
  'Точки пересечения объектов  
  Set Pts = Geom.CrossGeoObjects(Geo1, Geo2, 0)
 ...

End Sub
 

Спасибо, то что надо.
У CrossGeoObjects flag всегда равен 0? Или может принимать другие значения (а то в документации нет описания).
 
Цитата
написал:
У CrossGeoObjects flag всегда равен 0? Или может принимать другие значения (а то в документации нет описания).
Да, пока только 0
Страницы: 1