Add LoadBackgroundTiles property

This commit is contained in:
Clemens 2021-11-10 22:31:39 +01:00
parent f2204fa6c0
commit 681da9b625
3 changed files with 10 additions and 9 deletions

View file

@ -211,15 +211,12 @@ namespace MapControl
} }
else else
{ {
var newTiles = new List<Tile>(); var minZoomLevel = LoadBackgroundTiles
var minZoomLevel = maxZoomLevel; ? Math.Max(TileMatrix.ZoomLevel - MaxBackgroundLevels, MinZoomLevel)
: maxZoomLevel;
if (this == ParentMap.MapLayer) // load background tiles
{
minZoomLevel = Math.Max(TileMatrix.ZoomLevel - MaxBackgroundLevels, MinZoomLevel);
}
var oldTiles = Tiles.Where(t => t.ZoomLevel >= minZoomLevel && t.ZoomLevel <= maxZoomLevel).ToList(); var oldTiles = Tiles.Where(t => t.ZoomLevel >= minZoomLevel && t.ZoomLevel <= maxZoomLevel).ToList();
var newTiles = new List<Tile>();
Tiles.Clear(); Tiles.Clear();

View file

@ -69,7 +69,6 @@ namespace MapControl
{ {
RenderTransform = new MatrixTransform(); RenderTransform = new MatrixTransform();
TileImageLoader = tileImageLoader; TileImageLoader = tileImageLoader;
#if WINUI #if WINUI
updateTimer = DispatcherQueue.CreateTimer(); updateTimer = DispatcherQueue.CreateTimer();
#endif #endif
@ -177,6 +176,11 @@ namespace MapControl
} }
} }
protected bool LoadBackgroundTiles
{
get { return this == parentMap?.MapLayer; }
}
private async void OnViewportChanged(object sender, ViewportChangedEventArgs e) private async void OnViewportChanged(object sender, ViewportChangedEventArgs e)
{ {
if (Children.Count == 0 || e.ProjectionChanged || Math.Abs(e.LongitudeOffset) > 180d) if (Children.Count == 0 || e.ProjectionChanged || Math.Abs(e.LongitudeOffset) > 180d)

View file

@ -126,7 +126,7 @@ namespace MapControl
.Where((matrix, i) => i == 0 || matrix.Scale <= maxScale) .Where((matrix, i) => i == 0 || matrix.Scale <= maxScale)
.ToList(); .ToList();
if (this != ParentMap.MapLayer) // do not load background tiles if (!LoadBackgroundTiles)
{ {
currentMatrixes = currentMatrixes.Skip(currentMatrixes.Count - 1).ToList(); // last element only currentMatrixes = currentMatrixes.Skip(currentMatrixes.Count - 1).ToList(); // last element only
} }