MapplMath.GetNearestPointOnPolylineExt

Модуль: MapplMath

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

Объявление

function GetNearestPointOnPolylineExt(pBuf: PDoublePoint;
	 n0,Count,oType,aSide: integer; aSideDelta: double; x,y: double;
	 aStrobeWidth,aMinLength: double; flOutOfStrobeBreak: boolean;
	 var LastPointNumber: integer;
	 var aResultX,aResultY,aDistance,aLength: double; flCheckRealSide: boolean;
	 flYDirection: boolean = true): integer;

Параметры

pBuf
указатель на буфер точек полигона
n0
номер начальной точки полилинии в буфере
Count
количество точек полилинии в буфере
oType
тип полилинии (0 - полигон, 1 - полилиния)
aSide
положение исходной точки относительно линии (0 - не анализировать, -1 - слева по ходу движения вдоль линии,
aSideDelta
максимальное расстояние, на котором исходная точка считается принадлежащей линии
x
координата исходной точки по горизонтали
y
координата исходной точки по вертикали
aStrobeWidth
ширина строба, в котором должна находиться исходная точка
aMinLength
минимальная длина от начала линии, на которой должна находиться найденная ближайшая точка на линии
flOutOfStrobeBreak
флаг прекращения работы, если исходная точка находится вне строба очередного отрезка полилинии
LastPointNumber
номер начальной узловой точки отрезка, на котором найдена ближайшая точка на полилинии (возвращаемый параметр)
aResultX
координата ближайшей точки на полилинии по горизонтали (возвращаемый параметр)
aResultY
координата ближайшей точки на полилинии по вертикали (возвращаемый параметр)
aDistance
расстояние до ближайшей точки на полилинии (возвращаемый параметр)
aLength
расстояние вдоль полилинии от точки с номером n0 в буфере до ближайшей точки на полилинии (возвращаемый параметр)
flCheckRealSide
флаг учета совпадения реального положения точки относительно полилинии заданному
flYDirection
направление увеличения Y координаты (true - вверх, false - вниз), для карты и по умолчанию true

Возвращает

-2
ближайшая точка на полилинии, удовлетворяющая всем условиям, не найдена
-1
ближайшая точка на полилинии, удовлетворяющая условиям, не найдена, но существует точка в стробе, но
0
ближайшая точка на полилинии найдена

Описание

1 - справа по ходу движения вдоль линии) (для слоя предельно минимальное расстояние определяется свойством компонента LayerCoordAccuracy, а для карты - MapCoordAccuracy минимальная длина от начала линии меньше заданной

Смотри также

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