2012-11-22 21:42:29 +01:00
|
|
|
|
// XAML Map Control - http://xamlmapcontrol.codeplex.com/
|
2014-01-10 20:11:39 +01:00
|
|
|
|
// Copyright © 2014 Clemens Fischer
|
2012-11-22 21:42:29 +01:00
|
|
|
|
// Licensed under the Microsoft Public License (Ms-PL)
|
|
|
|
|
|
|
2012-12-09 22:18:31 +01:00
|
|
|
|
#if NETFX_CORE
|
2012-11-22 21:42:29 +01:00
|
|
|
|
using Windows.Foundation;
|
|
|
|
|
|
using Windows.UI.Xaml.Controls;
|
|
|
|
|
|
#else
|
|
|
|
|
|
using System.Windows;
|
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
namespace MapControl
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class TileLayer : Panel
|
|
|
|
|
|
{
|
|
|
|
|
|
partial void Initialize()
|
|
|
|
|
|
{
|
|
|
|
|
|
RenderTransform = transform;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2014-06-11 23:03:13 +02:00
|
|
|
|
private Panel TileContainer
|
2012-11-22 21:42:29 +01:00
|
|
|
|
{
|
|
|
|
|
|
get { return Parent as Panel; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2014-06-11 23:03:13 +02:00
|
|
|
|
private void RenderTiles()
|
2012-11-22 21:42:29 +01:00
|
|
|
|
{
|
|
|
|
|
|
Children.Clear();
|
2014-06-11 23:03:13 +02:00
|
|
|
|
|
2012-11-22 21:42:29 +01:00
|
|
|
|
foreach (var tile in tiles)
|
|
|
|
|
|
{
|
|
|
|
|
|
Children.Add(tile.Image);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override Size MeasureOverride(Size availableSize)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var tile in tiles)
|
|
|
|
|
|
{
|
|
|
|
|
|
tile.Image.Measure(availableSize);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return new Size();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override Size ArrangeOverride(Size finalSize)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var tile in tiles)
|
|
|
|
|
|
{
|
|
|
|
|
|
var tileSize = (double)(256 << (zoomLevel - tile.ZoomLevel));
|
|
|
|
|
|
tile.Image.Width = tileSize;
|
|
|
|
|
|
tile.Image.Height = tileSize;
|
|
|
|
|
|
tile.Image.Arrange(new Rect(tileSize * tile.X - 256 * grid.X, tileSize * tile.Y - 256 * grid.Y, tileSize, tileSize));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return finalSize;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|