Возвращает номер отрезка полилини на который попадает точка на заданном расстоянии от начала полилинии.
Visual Basic:
Function GetPointOnPolylineSection(inPolyline As PolyLine, Ratio As Double) As ZPoint
PolyLine - исходная полилиния.
Ratio - отношение расстояния от начала полилинии до искомой точки к длине всей полилинии.
Отношение (Ratio) задается в диапазоне от 0 до 1.
Нумерация отрезков с нуля.
Sub InsertNode 'Разбиваем участок сети с ID=3, кододцем на расстоянии 70% от начала участка 'Создали объект слой Set L = CreateObject("ZuluLib.Layer") 'открыли слой L.Open "d:\out\voda.b00" ' Получаем полилинию для участка с ID=3 Set Pl = L.Elements.Item(3).PolyLine ' Создаем объект для работы с геометрией Set Geo = CreateObject("ZuluLib.ZGeometry") ' Получаем точку на полилинии на расстоянии 70% от начала Set Pt = Geo.GetPointOnPolyline(Pl, 0.7) ' Получаем номер сегомента полилинии для такой точки Num = Geo.GetPointOnPolylineSection(Pl, 0.7) ' Разбиваем символьным объектом (тип 6, режим 1) участок ID = 3 по координатам этой точки в найденную секцию полилинии L.InsertSymbol 3, Num, 0, Pt.X, Pt.Y, 6, 1 End Sub