diff --git a/Caching/FileDbCache.WPF/Properties/AssemblyInfo.cs b/Caching/FileDbCache.WPF/Properties/AssemblyInfo.cs
index 1a3fe8fd..251c59dd 100644
--- a/Caching/FileDbCache.WPF/Properties/AssemblyInfo.cs
+++ b/Caching/FileDbCache.WPF/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/Caching/FileDbCache.WinRT/Properties/AssemblyInfo.cs b/Caching/FileDbCache.WinRT/Properties/AssemblyInfo.cs
index b0a86cd7..667bcf76 100644
--- a/Caching/FileDbCache.WinRT/Properties/AssemblyInfo.cs
+++ b/Caching/FileDbCache.WinRT/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/Caching/ImageFileCache.WPF/Properties/AssemblyInfo.cs b/Caching/ImageFileCache.WPF/Properties/AssemblyInfo.cs
index 29e80ee7..7dfbba8c 100644
--- a/Caching/ImageFileCache.WPF/Properties/AssemblyInfo.cs
+++ b/Caching/ImageFileCache.WPF/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/Caching/ImageFileCache.WinRT/Properties/AssemblyInfo.cs b/Caching/ImageFileCache.WinRT/Properties/AssemblyInfo.cs
index acdfec75..b2ad0fd0 100644
--- a/Caching/ImageFileCache.WinRT/Properties/AssemblyInfo.cs
+++ b/Caching/ImageFileCache.WinRT/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/MapControl/ImageLoader.cs b/MapControl/ImageLoader.cs
index 75c579b8..1cb1e889 100644
--- a/MapControl/ImageLoader.cs
+++ b/MapControl/ImageLoader.cs
@@ -10,6 +10,9 @@ using System.Windows.Media.Imaging;
namespace MapControl
{
+ ///
+ /// Creates frozen BitmapSources from Stream or Uri.
+ ///
internal static class ImageLoader
{
public static BitmapSource FromStream(Stream stream)
diff --git a/MapControl/MapPanel.cs b/MapControl/MapPanel.cs
index e5729333..24dd7f5c 100644
--- a/MapControl/MapPanel.cs
+++ b/MapControl/MapPanel.cs
@@ -136,9 +136,15 @@ namespace MapControl
if (parentMap != null && location != null)
{
- viewportPosition = parentMap.LocationToViewportPoint(new Location(
- location.Latitude,
- Location.NearestLongitude(location.Longitude, parentMap.Center.Longitude)));
+ viewportPosition = parentMap.LocationToViewportPoint(location);
+
+ if (viewportPosition.X < 0d || viewportPosition.X > parentMap.RenderSize.Width ||
+ viewportPosition.Y < 0d || viewportPosition.Y > parentMap.RenderSize.Height)
+ {
+ viewportPosition = parentMap.LocationToViewportPoint(new Location(
+ location.Latitude,
+ Location.NearestLongitude(location.Longitude, parentMap.Center.Longitude)));
+ }
if ((bool)element.GetValue(FrameworkElement.UseLayoutRoundingProperty))
{
diff --git a/MapControl/MapPath.cs b/MapControl/MapPath.cs
index c3c295a6..6435d3d1 100644
--- a/MapControl/MapPath.cs
+++ b/MapControl/MapPath.cs
@@ -89,10 +89,22 @@ namespace MapControl
private void OnViewportChanged(object sender, EventArgs e)
{
- var longitude = Location.NormalizeLongitude(MapPanel.GetLocation(this).Longitude);
+ var location = MapPanel.GetLocation(this);
- ((TranslateTransform)viewportTransform.Children[0]).X =
- Location.NearestLongitude(longitude, parentMap.Center.Longitude) - longitude;
+ if (parentMap != null && location != null)
+ {
+ var viewportPosition = parentMap.LocationToViewportPoint(location);
+ var longitudeOffset = 0d;
+
+ if (viewportPosition.X < 0d || viewportPosition.X > parentMap.RenderSize.Width ||
+ viewportPosition.Y < 0d || viewportPosition.Y > parentMap.RenderSize.Height)
+ {
+ var longitude = Location.NormalizeLongitude(location.Longitude);
+ longitudeOffset = Location.NearestLongitude(longitude, parentMap.Center.Longitude) - longitude;
+ }
+
+ ((TranslateTransform)viewportTransform.Children[0]).X = longitudeOffset;
+ }
}
}
}
diff --git a/MapControl/Properties/AssemblyInfo.cs b/MapControl/Properties/AssemblyInfo.cs
index 777ea6de..75616e74 100644
--- a/MapControl/Properties/AssemblyInfo.cs
+++ b/MapControl/Properties/AssemblyInfo.cs
@@ -14,8 +14,8 @@ using System.Windows;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/MapControl/TileImageLoader.WinRT.cs b/MapControl/TileImageLoader.WinRT.cs
index ef8dd5ce..ef480392 100644
--- a/MapControl/TileImageLoader.WinRT.cs
+++ b/MapControl/TileImageLoader.WinRT.cs
@@ -123,7 +123,7 @@ namespace MapControl
{
Interlocked.Increment(ref taskCount);
- Task.Run(async () => await LoadPendingTiles(tileSource, sourceName));
+ Task.Run(() => LoadPendingTiles(tileSource, sourceName)); // Task.Run(Func)
}
}
}
diff --git a/MapControl/WinRT/Properties/AssemblyInfo.cs b/MapControl/WinRT/Properties/AssemblyInfo.cs
index 47ee4c3f..60a343f0 100644
--- a/MapControl/WinRT/Properties/AssemblyInfo.cs
+++ b/MapControl/WinRT/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/SampleApps/PhoneApplication/Properties/AssemblyInfo.cs b/SampleApps/PhoneApplication/Properties/AssemblyInfo.cs
index 14018598..b79570d7 100644
--- a/SampleApps/PhoneApplication/Properties/AssemblyInfo.cs
+++ b/SampleApps/PhoneApplication/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs b/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs
index e213dbd4..96a02167 100644
--- a/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs
+++ b/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs b/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs
index 568257f5..0713b53e 100644
--- a/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs
+++ b/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
diff --git a/SampleApps/StoreApplication/Properties/AssemblyInfo.cs b/SampleApps/StoreApplication/Properties/AssemblyInfo.cs
index 728fd766..213687f2 100644
--- a/SampleApps/StoreApplication/Properties/AssemblyInfo.cs
+++ b/SampleApps/StoreApplication/Properties/AssemblyInfo.cs
@@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCopyright("© 2015 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: ComVisible(false)]
diff --git a/SampleApps/UniversalApp/Properties/AssemblyInfo.cs b/SampleApps/UniversalApp/Properties/AssemblyInfo.cs
index 93e8dd50..5f42ef9f 100644
--- a/SampleApps/UniversalApp/Properties/AssemblyInfo.cs
+++ b/SampleApps/UniversalApp/Properties/AssemblyInfo.cs
@@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: ComVisible(false)]
diff --git a/SampleApps/WpfApplication/MainWindow.xaml.cs b/SampleApps/WpfApplication/MainWindow.xaml.cs
index 311a5ef4..df0c0333 100644
--- a/SampleApps/WpfApplication/MainWindow.xaml.cs
+++ b/SampleApps/WpfApplication/MainWindow.xaml.cs
@@ -2,6 +2,7 @@
using System.Globalization;
using System.Windows;
using System.Windows.Input;
+using System.Windows.Media;
using MapControl;
namespace WpfApplication
@@ -15,6 +16,17 @@ namespace WpfApplication
//BingMapsTileLayer.ApiKey = "...";
InitializeComponent();
+
+ for (double lon = -180; lon < 180; lon += 10)
+ {
+ var pushpin = new Pushpin { Content = lon };
+ MapPanel.SetLocation(pushpin, new Location(50, lon));
+ map.Children.Add(pushpin);
+
+ var path = new MapPath { Data = new EllipseGeometry(new Point(lon, 60), 10, 10), Stroke = Brushes.Blue, StrokeThickness = 2 };
+ MapPanel.SetLocation(path, new Location(50, lon));
+ map.Children.Add(path);
+ }
}
private void MapMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
diff --git a/SampleApps/WpfApplication/Properties/AssemblyInfo.cs b/SampleApps/WpfApplication/Properties/AssemblyInfo.cs
index ffc9d036..df2b8354 100644
--- a/SampleApps/WpfApplication/Properties/AssemblyInfo.cs
+++ b/SampleApps/WpfApplication/Properties/AssemblyInfo.cs
@@ -7,8 +7,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyCopyright("© 2016 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyVersion("2.9.0")]
-[assembly: AssemblyFileVersion("2.9.0")]
+[assembly: AssemblyVersion("2.10.0")]
+[assembly: AssemblyFileVersion("2.10.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]