MapplMath.GetNearestPointOnPolylineInt

Модуль: MapplMath

Найти ближайшую точку на полилинии, заданной целочисленными координатами

Объявление

function GetNearestPointOnPolylineInt(pBuf: PPoint; 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)

Возвращает

<0
ближайшая точка на полилинии не найдена
0
ближайшая точка на полилинии найдена и совпадает с узловой точкой
1
ближайшая точка на полилинии найдена и находится на отрезке между узловыми точками

Описание

Искомая точка может как совпадать с одной из узловых точек, так и находиться на отрезке между узловыми точками значение aCheckVertexMode равно cvmVertexOnly, по умолчанию cmNone) по умолчанию -1) по умолчанию -1) (номер начальной точки отрезка - LastPointNumber)

Смотри также

GetNearestPointOfLine
Найти ближайшую точку на линии
GetNearestPointOnPolyline
Найти ближайшую точку на полилинии
GetNearestPointOnPolylineInt
Найти ближайшую точку на полилинии, заданной целочисленными координатами
GetLengthToNearestPointOnPolyline
Найти расстояние до ближайшей точки на полилинии