diff --git a/components/lazmapviewer/source/mvengine.pas b/components/lazmapviewer/source/mvengine.pas index 6bd41c7a2..f62c344f9 100644 --- a/components/lazmapviewer/source/mvengine.pas +++ b/components/lazmapviewer/source/mvengine.pas @@ -623,20 +623,13 @@ function TMapViewerEngine.DegreesToMapPixels(const AWin: TMapWindow; ALonLat: TRealPoint): TPoint; var pixelLocation: TPoint; - mapWidth: Int64; begin case AWin.MapProvider.ProjectionType of ptEPSG3395: pixelLocation := DegreesToPixelsEPSG3395(AWin, ALonLat); ptEPSG3857: pixelLocation := DegreesToPixelsEPSG3857(AWin, ALonLat); else pixelLocation := DegreesToPixelsEPSG3857(AWin, ALonLat); end; - - mapWidth := ZoomFactor(AWin.Zoom) * TILE_SIZE; Result.X := pixelLocation.x + AWin.X; - while (Result.X < 0) do - Result.X := Result.X + mapWidth; - while (Result.X > AWin.Width) do - Result.X := Result.X - mapWidth; Result.Y := pixelLocation.y + AWin.Y; end; @@ -721,11 +714,7 @@ var begin iMapWidth := round(ZoomFactor(AWin.Zoom)) * TILE_SIZE; - mPoint.X := (APoint.X - AWin.X) mod iMapWidth; - while mPoint.X < 0 do - mPoint.X := mPoint.X + iMapWidth; - while mPoint.X >= iMapWidth do - mPoint.X := mPoint.X - iMapWidth; + mPoint.X := EnsureRange(APoint.X - AWin.X, 0, iMapWidth); mPoint.Y := EnsureRange(APoint.Y - AWin.Y, 0, iMapWidth); case aWin.MapProvider.ProjectionType of @@ -1006,22 +995,17 @@ var x, y : Integer; //int64; Tiles: TTileIdArray = nil; iTile: Integer; - numTiles: Integer; begin if not(Active) then Exit; Queue.CancelAllJob(self); TilesVis := CalculateVisibleTiles(aWin); - numTiles := 1 shl aWin.Zoom; SetLength(Tiles, (TilesVis.Bottom - TilesVis.Top + 1) * (TilesVis.Right - TilesVis.Left + 1)); iTile := Low(Tiles); for y := TilesVis.Top to TilesVis.Bottom do for X := TilesVis.Left to TilesVis.Right do begin - //Tiles[iTile].X := X; - Tiles[iTile].X := X mod numTiles; - if Tiles[iTile].X < 0 then - Tiles[iTile].X := Tiles[iTile].X + numTiles; + Tiles[iTile].X := X; Tiles[iTile].Y := Y; Tiles[iTile].Z := aWin.Zoom; if IsValidTile(aWin, Tiles[iTile]) then @@ -1257,36 +1241,15 @@ var EnvTile: TEnvTile; img: TLazIntfImage; X, Y: integer; - worldWidth: Integer; - numTiles: Integer; - baseX: Integer; begin EnvTile := TEnvTile(Data); try if IsCurrentWin(EnvTile.Win)then begin Cache.GetFromCache(EnvTile.Win.MapProvider, EnvTile.Tile, img); - - Y := EnvTile.Win.Y + EnvTile.Tile.Y * TILE_SIZE; // begin of Y - baseX := EnvTile.Win.X + EnvTile.Tile.X * TILE_SIZE; // begin of X - numTiles := 1 shl EnvTile.Win.Zoom; - worldWidth := numTiles * TILE_SIZE; - - // From the center to the left (western) hemisphere - X := baseX; - while (X+TILE_SIZE >= 0) do - begin - DrawTile(EnvTile.Tile, X, Y, img); - X := X - worldWidth; - end; - - // From the center to the right (eastern) hemisphere - X := baseX + worldWidth; - while ((X-TILE_SIZE) <= EnvTile.Win.Width) do - begin - DrawTile(EnvTile.Tile, X, Y, img); - X := X + worldWidth; - end; + X := EnvTile.Win.X + EnvTile.Tile.X * TILE_SIZE; // begin of X + Y := EnvTile.Win.Y + EnvTile.Tile.Y * TILE_SIZE; // begin of Y + DrawTile(EnvTile.Tile, X, Y, img); end; finally FreeAndNil(EnvTile); diff --git a/components/lazmapviewer/source/mvmapviewer.pas b/components/lazmapviewer/source/mvmapviewer.pas index abe743f18..dd582963a 100644 --- a/components/lazmapviewer/source/mvmapviewer.pas +++ b/components/lazmapviewer/source/mvmapviewer.pas @@ -793,8 +793,6 @@ var begin Area.TopLeft := Engine.ScreenToLonLat(Point(aLeft, aTop)); Area.BottomRight := Engine.ScreenToLonLat(Point(aRight, aBottom)); - Area.Normalize; - if GPSItems.Count > 0 then begin lst := GPSItems.GetObjectsInArea(Area); @@ -1015,25 +1013,13 @@ end; function TMapView.GetVisibleArea: TRealArea; var aPt: TPoint; - w, mapWidth: Int64; begin aPt.X := 0; aPt.Y := 0; Result.TopLeft := Engine.ScreenToLonLat(aPt); - - mapWidth := ZoomFactor(Engine.Zoom) * TILE_SIZE; - w := Width; - if w >= mapWidth then - begin - Result.TopLeft.Lon := -180; - Result.BottomRight.Lon := 180; - end else - begin - aPt.X := w; - aPt.Y := Height; - Result.BottomRight := Engine.ScreenToLonLat(aPt); - Result.Normalize; - end; + aPt.X := Width; + aPt.Y := Height; + Result.BottomRight := Engine.ScreenToLonLat(aPt); end; procedure TMapView.ClearBuffer; diff --git a/components/lazmapviewer/source/mvtypes.pas b/components/lazmapviewer/source/mvtypes.pas index b1341bdf4..8702974ee 100644 --- a/components/lazmapviewer/source/mvtypes.pas +++ b/components/lazmapviewer/source/mvtypes.pas @@ -47,8 +47,6 @@ Type TRealArea = Record TopLeft : TRealPoint; BottomRight : TRealPoint; - procedure Normalize; - function Normalized: TRealArea; end; @@ -76,19 +74,5 @@ begin Self.Lat := RadToDeg(AValue); end; -{ TRealArea } - -procedure TRealArea.Normalize; -begin - while BottomRight.Lon < TopLeft.Lon do - BottomRight.Lon := BottomRight.Lon + 360.0; -end; - -function TRealArea.Normalized: TRealArea; -begin - Result := Self; - Result.Normalize; -end; - end.