mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2025-12-06 07:12:04 +01:00
Minor cleanup in TileImageLoader
This commit is contained in:
parent
fa5368e77a
commit
ee4f049334
|
|
@ -208,7 +208,7 @@ namespace MapControl
|
|||
Children.Add(tile.Image);
|
||||
}
|
||||
|
||||
TileImageLoader.LoadTilesAsync(Tiles, TileSource, SourceName);
|
||||
TileImageLoader.LoadTiles(Tiles, TileSource, SourceName);
|
||||
}
|
||||
|
||||
protected override Size MeasureOverride(Size availableSize)
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace MapControl
|
|||
{
|
||||
public interface ITileImageLoader
|
||||
{
|
||||
void LoadTilesAsync(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName);
|
||||
void LoadTiles(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName);
|
||||
}
|
||||
|
||||
public abstract class MapTileLayerBase : Panel, IMapLayer
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ namespace MapControl
|
|||
public static string CacheKeyFormat { get; set; } = "{0}/{1}/{2}/{3}{4}";
|
||||
|
||||
|
||||
public class TileQueue : ConcurrentStack<Tile>
|
||||
private class TileQueue : ConcurrentStack<Tile>
|
||||
{
|
||||
public void Enqueue(IEnumerable<Tile> tiles)
|
||||
{
|
||||
|
|
@ -58,10 +58,10 @@ namespace MapControl
|
|||
/// Loads all pending tiles from the tiles collection.
|
||||
/// If tileSource.UriFormat starts with "http" and sourceName is a non-empty string,
|
||||
/// tile images will be cached in the TileImageLoader's Cache (if it's not null).
|
||||
/// The method is async void because it implements void ITileImageLoader.LoadTilesAsync
|
||||
/// The method is async void because it implements void ITileImageLoader.LoadTiles
|
||||
/// and is not awaited when it is called in MapTileLayer.UpdateTiles().
|
||||
/// </summary>
|
||||
public async void LoadTilesAsync(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName)
|
||||
public async void LoadTiles(IEnumerable<Tile> tiles, TileSource tileSource, string sourceName)
|
||||
{
|
||||
tileQueue.Clear();
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ namespace MapControl
|
|||
}
|
||||
}
|
||||
|
||||
TileImageLoader.LoadTilesAsync(tiles, tileSource, sourceName);
|
||||
TileImageLoader.LoadTiles(tiles, tileSource, sourceName);
|
||||
}
|
||||
|
||||
private async void OnLoaded(object sender, RoutedEventArgs e)
|
||||
|
|
|
|||
|
|
@ -56,7 +56,9 @@ namespace MapControl
|
|||
|
||||
if (buffer != null && buffer.Length > 0)
|
||||
{
|
||||
SetTileImageAsync(tile, await ImageLoader.LoadImageAsync(buffer).ConfigureAwait(false));
|
||||
var image = await ImageLoader.LoadImageAsync(buffer).ConfigureAwait(false);
|
||||
|
||||
SetTileImage(tile, image);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -64,15 +66,15 @@ namespace MapControl
|
|||
{
|
||||
var image = await tileSource.LoadImageAsync(tile.XIndex, tile.Y, tile.ZoomLevel).ConfigureAwait(false);
|
||||
|
||||
if (image != null)
|
||||
{
|
||||
SetTileImageAsync(tile, image);
|
||||
}
|
||||
SetTileImage(tile, image);
|
||||
}
|
||||
|
||||
private static void SetTileImageAsync(Tile tile, ImageSource image)
|
||||
private static void SetTileImage(Tile tile, ImageSource image)
|
||||
{
|
||||
tile.Image.Dispatcher.InvokeAsync(() => tile.SetImage(image));
|
||||
if (image != null)
|
||||
{
|
||||
tile.Image.Dispatcher.InvokeAsync(() => tile.SetImage(image));
|
||||
}
|
||||
}
|
||||
|
||||
private static Task<ImageCacheItem> GetCacheAsync(string cacheKey)
|
||||
|
|
|
|||
Loading…
Reference in a new issue