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
{
var newTiles = new List<Tile>();
var minZoomLevel = maxZoomLevel;
if (this == ParentMap.MapLayer) // load background tiles
{
minZoomLevel = Math.Max(TileMatrix.ZoomLevel - MaxBackgroundLevels, MinZoomLevel);
}
var minZoomLevel = LoadBackgroundTiles
? Math.Max(TileMatrix.ZoomLevel - MaxBackgroundLevels, MinZoomLevel)
: maxZoomLevel;
var oldTiles = Tiles.Where(t => t.ZoomLevel >= minZoomLevel && t.ZoomLevel <= maxZoomLevel).ToList();
var newTiles = new List<Tile>();
Tiles.Clear();

View file

@ -69,7 +69,6 @@ namespace MapControl
{
RenderTransform = new MatrixTransform();
TileImageLoader = tileImageLoader;
#if WINUI
updateTimer = DispatcherQueue.CreateTimer();
#endif
@ -177,6 +176,11 @@ namespace MapControl
}
}
protected bool LoadBackgroundTiles
{
get { return this == parentMap?.MapLayer; }
}
private async void OnViewportChanged(object sender, ViewportChangedEventArgs e)
{
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)
.ToList();
if (this != ParentMap.MapLayer) // do not load background tiles
if (!LoadBackgroundTiles)
{
currentMatrixes = currentMatrixes.Skip(currentMatrixes.Count - 1).ToList(); // last element only
}