diff --git a/Caching/FileDbCache/Properties/AssemblyInfo.cs b/Caching/FileDbCache/Properties/AssemblyInfo.cs index b1541348..6a49486a 100644 --- a/Caching/FileDbCache/Properties/AssemblyInfo.cs +++ b/Caching/FileDbCache/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Caching/ImageFileCache/Properties/AssemblyInfo.cs b/Caching/ImageFileCache/Properties/AssemblyInfo.cs index 15708cd0..82e50bcb 100644 --- a/Caching/ImageFileCache/Properties/AssemblyInfo.cs +++ b/Caching/ImageFileCache/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/MapControl/MapBase.cs b/MapControl/MapBase.cs index 07000926..dc69d0e2 100644 --- a/MapControl/MapBase.cs +++ b/MapControl/MapBase.cs @@ -345,18 +345,14 @@ namespace MapControl /// public void TranslateMap(Point translation) { + if (transformOrigin != null) + { + ResetTransformOrigin(); + } + if (translation.X != 0d || translation.Y != 0d) { - if (transformOrigin != null) - { - viewportOrigin.X += translation.X; - viewportOrigin.Y += translation.Y; - UpdateTransform(); - } - else - { - Center = ViewportPointToLocation(new Point(viewportOrigin.X - translation.X, viewportOrigin.Y - translation.Y)); - } + Center = ViewportPointToLocation(new Point(viewportOrigin.X - translation.X, viewportOrigin.Y - translation.Y)); } } @@ -386,8 +382,7 @@ namespace MapControl InternalSetValue(TargetZoomLevelProperty, zoomLevel); } - UpdateTransform(); - ResetTransformOrigin(); + UpdateTransform(true); } /// @@ -577,16 +572,14 @@ namespace MapControl center = new Location(); InternalSetValue(property, center); } - else + else if (center.Longitude < -180d || center.Longitude > 180d || + center.Latitude < -mapTransform.MaxLatitude || center.Latitude > mapTransform.MaxLatitude) { - var latitude = Math.Min(Math.Max(center.Latitude, -mapTransform.MaxLatitude), mapTransform.MaxLatitude); - var longitude = Location.NormalizeLongitude(center.Longitude); + center = new Location( + Math.Min(Math.Max(center.Latitude, -mapTransform.MaxLatitude), mapTransform.MaxLatitude), + Location.NormalizeLongitude(center.Longitude)); - if (center.Latitude != latitude || center.Longitude != longitude) - { - center = new Location(latitude, longitude); - InternalSetValue(property, center); - } + InternalSetValue(property, center); } } @@ -750,8 +743,7 @@ namespace MapControl InternalSetValue(ZoomLevelProperty, TargetZoomLevel); RemoveAnimation(ZoomLevelProperty); // remove holding animation in WPF - UpdateTransform(); - ResetTransformOrigin(); + UpdateTransform(true); } } @@ -830,7 +822,7 @@ namespace MapControl } } - private void UpdateTransform() + private void UpdateTransform(bool resetTransformOrigin = false) { var center = Center; var scale = SetViewportTransform(transformOrigin ?? center); @@ -838,9 +830,13 @@ namespace MapControl if (transformOrigin != null) { center = ViewportPointToLocation(new Point(RenderSize.Width / 2d, RenderSize.Height / 2d)); + center.Longitude = Location.NormalizeLongitude(center.Longitude); - var latitude = center.Latitude; - center.Latitude = Math.Min(Math.Max(latitude, -mapTransform.MaxLatitude), mapTransform.MaxLatitude); + if (center.Latitude < -mapTransform.MaxLatitude || center.Latitude > mapTransform.MaxLatitude) + { + center.Latitude = Math.Min(Math.Max(center.Latitude, -mapTransform.MaxLatitude), mapTransform.MaxLatitude); + resetTransformOrigin = true; + } InternalSetValue(CenterProperty, center); @@ -850,7 +846,7 @@ namespace MapControl InternalSetValue(CenterPointProperty, MapTransform.Transform(center)); } - if (center.Latitude != latitude) + if (resetTransformOrigin) { ResetTransformOrigin(); scale = SetViewportTransform(center); diff --git a/MapControl/Properties/AssemblyInfo.cs b/MapControl/Properties/AssemblyInfo.cs index ae43703d..cfaa3804 100644 --- a/MapControl/Properties/AssemblyInfo.cs +++ b/MapControl/Properties/AssemblyInfo.cs @@ -15,8 +15,8 @@ using System.Windows; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/MapControl/TileContainer.cs b/MapControl/TileContainer.cs index fab23492..216ed947 100644 --- a/MapControl/TileContainer.cs +++ b/MapControl/TileContainer.cs @@ -98,26 +98,25 @@ namespace MapControl var transformOffsetX = viewportOrigin.X - mapOrigin.X * scale; var transformOffsetY = viewportOrigin.Y + mapOrigin.Y * scale; + ViewportTransform.Matrix = GetViewportTransformMatrix(scale, transformOffsetX, transformOffsetY); + tileLayerOffset.X = transformOffsetX - 180d * scale; tileLayerOffset.Y = transformOffsetY - 180d * scale; - ViewportTransform.Matrix = GetViewportTransformMatrix(scale, transformOffsetX, transformOffsetY); + var tileLayerTransform = GetTileLayerTransformMatrix(); + + foreach (TileLayer tileLayer in Children) + { + tileLayer.SetTransformMatrix(tileLayerTransform); + } if (Math.Abs(mapOrigin.X - oldMapOriginX) > 180d) { // immediately handle map origin leap when map center moves across 180° longitude - UpdateTiles(this, EventArgs.Empty); } else { - var tileLayerTransform = GetTileLayerTransformMatrix(); - - foreach (TileLayer tileLayer in Children) - { - tileLayer.SetTransformMatrix(tileLayerTransform); - } - updateTimer.Start(); } diff --git a/MapControl/WinRT/Properties/AssemblyInfo.cs b/MapControl/WinRT/Properties/AssemblyInfo.cs index 952a4778..d12178a8 100644 --- a/MapControl/WinRT/Properties/AssemblyInfo.cs +++ b/MapControl/WinRT/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs b/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs index ef2ba4cb..6af1ccf9 100644 --- a/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs +++ b/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs b/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs index bb0e06d5..f2b51cca 100644 --- a/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs +++ b/SampleApps/SilverlightApplication/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/StoreApplication/Properties/AssemblyInfo.cs b/SampleApps/StoreApplication/Properties/AssemblyInfo.cs index ab726094..4b99252e 100644 --- a/SampleApps/StoreApplication/Properties/AssemblyInfo.cs +++ b/SampleApps/StoreApplication/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs b/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs index 30363e1d..7f761229 100644 --- a/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs +++ b/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/WpfApplication/Properties/AssemblyInfo.cs b/SampleApps/WpfApplication/Properties/AssemblyInfo.cs index 4605bc71..d753faa5 100644 --- a/SampleApps/WpfApplication/Properties/AssemblyInfo.cs +++ b/SampleApps/WpfApplication/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.10.0")] -[assembly: AssemblyFileVersion("1.10.0")] +[assembly: AssemblyVersion("1.10.1")] +[assembly: AssemblyFileVersion("1.10.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)]