MapplMath.GetNearestPointOnPolyline
Модуль: MapplMath
Найти ближайшую точку на полилинии
Объявление
function GetNearestPointOnPolyline(pBuf: PDoublePoint;
n0,Count,oType: integer; x,y,Delta: double; var LastPointNumber: integer;
var aResultX,aResultY,aDistance: double;
aConstrainMode: TConstrainMode = cmNone;
aCheckVertexMode: TCheckVertexMode = cvmVertexSnap;
MaxSearchRadius: double = -1; nFirstPoint: integer = -1;
nEndPoint: integer = -1; NearestPoints: PArrayMapObjectPoints = nil;
NearestPointsMaxCount: integer = 0): integer;
Параметры
pBuf
- указатель на буфер точек полилинии
n0
- номер начальной точки полилинии в буфере
- Count
- количество точек полилинии в буфере
oType
- тип полилинии (0 - полигон, 1 - полилиния)
x
- координата исходной точки по горизонтали
y
- координата исходной точки по вертикали
Delta
- погрешность поиска
LastPointNumber
- номер начальной узловой точки отрезка, на котором найдена ближайшая точка на полилинии (возвращаемый параметр)
aResultX
- координата ближайшей точки на полилинии по горизонтали (возвращаемый параметр)
aResultY
- координата ближайшей точки на полилинии по вертикали (возвращаемый параметр)
aDistance
- расстояние до ближайшей точки на полилинии (возвращаемый параметр)
aConstrainMode
- режим ограничения точки на нормали границами отрезка линии (имеет смысл лишь в случае, если
aCheckVertexMode
- вариант поиска узловых точек, по умолчанию cvmVertexSnap
MaxSearchRadius
- максимальный радиус поиска, если < 0, то радиус поиска не ограничен (по умолчанию -1)
nFirstPoint
- начальная точка фрагмента полилинии (если -1, то рассматривается вся полилиния, начиная с точки n0,
nEndPoint
- конечная точка фрагмента полилинии (если nFirstPoint мнньше нуля, иначе рассматривается вся полилиния,
NearestPoints
- указатель на упорядоченный по возрастанию динамический массив ближайших точек (по умолчанию nil)
NearestPointsMaxCount
- максимальный размер динамический массив ближайших точек (по умолчанию 0)
Возвращает
- <
- -3 ближайшая точка на полилинии не найдена и ее проекция правее последнего отрезка полилинии
- <
- -2 ближайшая точка на полилинии не найдена и ее проекция левее первого отрезка полилинии
- <
- -1 ближайшая точка на полилинии не найдена либо линия плохая
- 0
- ближайшая точка на полилинии найдена и совпадает с узловой точкой
- 1
- ближайшая точка на полилинии найдена и находится на отрезке между узловыми точками
Описание
Искомая точка может как совпадать с одной из узловых точек, так и находиться на отрезке между узловыми точками значение aCheckVertexMode равно cvmVertexOnly, по умолчанию cmNone) по умолчанию -1) по умолчанию -1) (номер начальной точки отрезка - LastPointNumber)
Смотри также
- GetNearestPointOfLine
- Найти ближайшую точку на линии
- GetNearestPointOnPolyline
- Найти ближайшую точку на полилинии
- GetNearestPointOnPolylineInt
- Найти ближайшую точку на полилинии, заданной целочисленными координатами
- GetLengthToNearestPointOnPolyline
- Найти расстояние до ближайшей точки на полилинии