lazmapviewer: Fix across-dateline track disappearing when start point is vertically outside the viewport. Patch by Yuliyan Ivanov.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9170 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2024-01-24 23:08:48 +00:00
parent 81073155a3
commit 03e6f8bcd5

View File

@ -196,7 +196,7 @@ function GoingEast(Lon1, Lon2: Double): Boolean;
implementation
uses
mvExtraData, mvMapViewer;
mvExtraData, mvMapViewer, Math;
function GoingEast(Lon1, Lon2: Double): Boolean;
begin
@ -791,16 +791,9 @@ begin
for i:=1 to pred(FPoints.Count) do
begin
pt2 := FPoints[I].RealPoint;
if GoingEast(pt1.Lon, pt2.Lon) then
begin
ptArea.TopLeft := pt1;
ptArea.BottomRight := pt2;
end
else
begin
ptArea.TopLeft := pt2;
ptArea.BottomRight := pt1;
end;
if GoingEast(pt1.Lon, pt2.Lon)
then ptArea.Init(pt1.Lon, Max(pt1.Lat, pt2.Lat), pt2.Lon, Min(pt1.Lat, pt2.Lat))
else ptArea.Init(pt2.Lon, Max(pt1.Lat, pt2.Lat), pt1.Lon, Min(pt1.Lat, pt2.Lat));
ExtendArea(Area, ptArea);
pt1 := pt2;
end;