diff --git a/Demo.WindowsForms/app.config b/Demo.WindowsForms/app.config new file mode 100644 index 00000000..57c0f2cb --- /dev/null +++ b/Demo.WindowsForms/app.config @@ -0,0 +1,3 @@ + + + diff --git a/Demo.WindowsPresentation/app.config b/Demo.WindowsPresentation/app.config new file mode 100644 index 00000000..cb2586be --- /dev/null +++ b/Demo.WindowsPresentation/app.config @@ -0,0 +1,3 @@ + + + diff --git a/GMap.NET.Core/GMap.NET.Core.csproj b/GMap.NET.Core/GMap.NET.Core.csproj index 9f3dd676..7ba34079 100644 --- a/GMap.NET.Core/GMap.NET.Core.csproj +++ b/GMap.NET.Core/GMap.NET.Core.csproj @@ -9,7 +9,7 @@ Library Properties GMap.NET - GMap.NET.Core + GMap.NET.Core 512 true sn.snk @@ -110,7 +110,7 @@ false false - + 2.0 @@ -229,11 +229,11 @@ - - - - - + + + + + diff --git a/GMap.NET.Core/GMap.NET.Internals/Core.cs b/GMap.NET.Core/GMap.NET.Internals/Core.cs index c2c7dfe5..92913703 100644 --- a/GMap.NET.Core/GMap.NET.Internals/Core.cs +++ b/GMap.NET.Core/GMap.NET.Internals/Core.cs @@ -807,7 +807,7 @@ void AddLoadTask(LoadTask t) Debug.WriteLine(ctid + ": started"); do - { + { if (tileLoadQueue4.Count == 0) { Debug.WriteLine(ctid + ": ready"); diff --git a/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechHistoryMapProvider.cs b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechHistoryMapProvider.cs new file mode 100644 index 00000000..03e15519 --- /dev/null +++ b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechHistoryMapProvider.cs @@ -0,0 +1,76 @@ + +namespace GMap.NET.MapProviders +{ + using System; + + /// + /// CzechHistoryMap provider, http://www.mapy.cz/ + /// + public class CzechHistoryMapProviderOld : CzechMapProviderBaseOld + { + public static readonly CzechHistoryMapProviderOld Instance; + + CzechHistoryMapProviderOld() + { + } + + static CzechHistoryMapProviderOld() + { + Instance = new CzechHistoryMapProviderOld(); + } + + #region GMapProvider Members + + readonly Guid id = new Guid("C666AAF4-9D27-418F-97CB-7F0D8CC44544"); + public override Guid Id + { + get + { + return id; + } + } + + readonly string name = "CzechHistoryMap"; + public override string Name + { + get + { + return name; + } + } + + GMapProvider[] overlays; + public override GMapProvider[] Overlays + { + get + { + if(overlays == null) + { + overlays = new GMapProvider[] { this, CzechHybridMapProviderOld.Instance }; + } + return overlays; + } + } + + public override PureImage GetTileImage(GPoint pos, int zoom) + { + string url = MakeTileImageUrl(pos, zoom, LanguageStr); + + return GetTileImageUsingHttp(url); + } + + #endregion + + string MakeTileImageUrl(GPoint pos, int zoom, string language) + { + // http://m4.mapserver.mapy.cz/army2/9_7d00000_8080000 + + long xx = pos.X << (28 - zoom); + long yy = ((((long)Math.Pow(2.0, (double)zoom)) - 1) - pos.Y) << (28 - zoom); + + return string.Format(UrlFormat, GetServerNum(pos, 3) + 1, zoom, xx, yy); + } + + static readonly string UrlFormat = "http://m{0}.mapserver.mapy.cz/army2/{1}_{2:x7}_{3:x7}"; + } +} \ No newline at end of file diff --git a/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechHybridMapProvider.cs b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechHybridMapProvider.cs new file mode 100644 index 00000000..37929ee8 --- /dev/null +++ b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechHybridMapProvider.cs @@ -0,0 +1,76 @@ + +namespace GMap.NET.MapProviders +{ + using System; + + /// + /// CzechHybridMap provider, http://www.mapy.cz/ + /// + public class CzechHybridMapProviderOld : CzechMapProviderBaseOld + { + public static readonly CzechHybridMapProviderOld Instance; + + CzechHybridMapProviderOld() + { + } + + static CzechHybridMapProviderOld() + { + Instance = new CzechHybridMapProviderOld(); + } + + #region GMapProvider Members + + readonly Guid id = new Guid("F785D98E-DD1D-46FD-8BC1-1AAB69604980"); + public override Guid Id + { + get + { + return id; + } + } + + readonly string name = "CzechHybridMap"; + public override string Name + { + get + { + return name; + } + } + + GMapProvider[] overlays; + public override GMapProvider[] Overlays + { + get + { + if(overlays == null) + { + overlays = new GMapProvider[] { CzechSatelliteMapProviderOld.Instance, this }; + } + return overlays; + } + } + + public override PureImage GetTileImage(GPoint pos, int zoom) + { + string url = MakeTileImageUrl(pos, zoom, LanguageStr); + + return GetTileImageUsingHttp(url); + } + + #endregion + + string MakeTileImageUrl(GPoint pos, int zoom, string language) + { + // http://m2.mapserver.mapy.cz/hybrid/9_7d00000_7b80000 + + long xx = pos.X << (28 - zoom); + long yy = ((((long)Math.Pow(2.0, (double)zoom)) - 1) - pos.Y) << (28 - zoom); + + return string.Format(UrlFormat, GetServerNum(pos, 3) + 1, zoom, xx, yy); + } + + static readonly string UrlFormat = "http://m{0}.mapserver.mapy.cz/hybrid/{1}_{2:x7}_{3:x7}"; + } +} \ No newline at end of file diff --git a/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechMapProvider.cs b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechMapProvider.cs new file mode 100644 index 00000000..17a5db72 --- /dev/null +++ b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechMapProvider.cs @@ -0,0 +1,118 @@ + +namespace GMap.NET.MapProviders +{ + using System; + using GMap.NET.Projections; + + public abstract class CzechMapProviderBaseOld : GMapProvider + { + public CzechMapProviderBaseOld() + { + RefererUrl = "http://www.mapy.cz/"; + Area = new RectLatLng(51.2024819920053, 11.8401353319027, 7.22833716731277, 2.78312271922872); + } + + #region GMapProvider Members + public override Guid Id + { + get + { + throw new NotImplementedException(); + } + } + + public override string Name + { + get + { + throw new NotImplementedException(); + } + } + + public override PureProjection Projection + { + get + { + return MapyCZProjection.Instance; + } + } + + GMapProvider[] overlays; + public override GMapProvider[] Overlays + { + get + { + if(overlays == null) + { + overlays = new GMapProvider[] { this }; + } + return overlays; + } + } + + public override PureImage GetTileImage(GPoint pos, int zoom) + { + throw new NotImplementedException(); + } + #endregion + } + + /// + /// CzechMap provider, http://www.mapy.cz/ + /// + public class CzechMapProviderOld : CzechMapProviderBaseOld + { + public static readonly CzechMapProviderOld Instance; + + CzechMapProviderOld() + { + } + + static CzechMapProviderOld() + { + Instance = new CzechMapProviderOld(); + } + + #region GMapProvider Members + + readonly Guid id = new Guid("6A1AF99A-84C6-4EF6-91A5-77B9D03257C2"); + public override Guid Id + { + get + { + return id; + } + } + + readonly string name = "CzechMap"; + public override string Name + { + get + { + return name; + } + } + + public override PureImage GetTileImage(GPoint pos, int zoom) + { + string url = MakeTileImageUrl(pos, zoom, LanguageStr); + + return GetTileImageUsingHttp(url); + } + + #endregion + + string MakeTileImageUrl(GPoint pos, int zoom, string language) + { + // ['base','ophoto','turist','army2'] + // http://m1.mapserver.mapy.cz/base-n/3_8000000_8000000 + + long xx = pos.X << (28 - zoom); + long yy = ((((long)Math.Pow(2.0, (double)zoom)) - 1) - pos.Y) << (28 - zoom); + + return string.Format(UrlFormat, GetServerNum(pos, 3) + 1, zoom, xx, yy); + } + + static readonly string UrlFormat = "http://m{0}.mapserver.mapy.cz/base-n/{1}_{2:x7}_{3:x7}"; + } +} \ No newline at end of file diff --git a/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechSatelliteMapProvider.cs b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechSatelliteMapProvider.cs new file mode 100644 index 00000000..6f856307 --- /dev/null +++ b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechSatelliteMapProvider.cs @@ -0,0 +1,63 @@ + +namespace GMap.NET.MapProviders +{ + using System; + + /// + /// CzechSatelliteMap provider, http://www.mapy.cz/ + /// + public class CzechSatelliteMapProviderOld : CzechMapProviderBaseOld + { + public static readonly CzechSatelliteMapProviderOld Instance; + + CzechSatelliteMapProviderOld() + { + } + + static CzechSatelliteMapProviderOld() + { + Instance = new CzechSatelliteMapProviderOld(); + } + + #region GMapProvider Members + + readonly Guid id = new Guid("7846D655-5F9C-4042-8652-60B6BF629C3C"); + public override Guid Id + { + get + { + return id; + } + } + + readonly string name = "CzechSatelliteMap"; + public override string Name + { + get + { + return name; + } + } + + public override PureImage GetTileImage(GPoint pos, int zoom) + { + string url = MakeTileImageUrl(pos, zoom, LanguageStr); + + return GetTileImageUsingHttp(url); + } + + #endregion + + string MakeTileImageUrl(GPoint pos, int zoom, string language) + { + //http://m3.mapserver.mapy.cz/ophoto/9_7a80000_7a80000 + + long xx = pos.X << (28 - zoom); + long yy = ((((long)Math.Pow(2.0, (double)zoom)) - 1) - pos.Y) << (28 - zoom); + + return string.Format(UrlFormat, GetServerNum(pos, 3) + 1, zoom, xx, yy); + } + + static readonly string UrlFormat = "http://m{0}.mapserver.mapy.cz/ophoto/{1}_{2:x7}_{3:x7}"; + } +} \ No newline at end of file diff --git a/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechTuristMapProvider.cs b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechTuristMapProvider.cs new file mode 100644 index 00000000..165d4980 --- /dev/null +++ b/GMap.NET.Core/GMap.NET.MapProviders/CzechOld/CzechTuristMapProvider.cs @@ -0,0 +1,63 @@ + +namespace GMap.NET.MapProviders +{ + using System; + + /// + /// CzechTuristMap provider, http://www.mapy.cz/ + /// + public class CzechTuristMapProviderOld : CzechMapProviderBaseOld + { + public static readonly CzechTuristMapProviderOld Instance; + + CzechTuristMapProviderOld() + { + } + + static CzechTuristMapProviderOld() + { + Instance = new CzechTuristMapProviderOld(); + } + + #region GMapProvider Members + + readonly Guid id = new Guid("B923C81D-880C-42EB-88AB-AF8FE42B564D"); + public override Guid Id + { + get + { + return id; + } + } + + readonly string name = "CzechTuristMap"; + public override string Name + { + get + { + return name; + } + } + + public override PureImage GetTileImage(GPoint pos, int zoom) + { + string url = MakeTileImageUrl(pos, zoom, LanguageStr); + + return GetTileImageUsingHttp(url); + } + + #endregion + + string MakeTileImageUrl(GPoint pos, int zoom, string language) + { + // http://m1.mapserver.mapy.cz/turist/3_8000000_8000000 + + long xx = pos.X << (28 - zoom); + long yy = ((((long)Math.Pow(2.0, (double)zoom)) - 1) - pos.Y) << (28 - zoom); + + return string.Format(UrlFormat, GetServerNum(pos, 3) + 1, zoom, xx, yy); + } + + static readonly string UrlFormat = "http://m{0}.mapserver.mapy.cz/turist/{1}_{2:x7}_{3:x7}"; + } +} \ No newline at end of file diff --git a/GMap.NET.Core/GMap.NET.MapProviders/GMapProvider.cs b/GMap.NET.Core/GMap.NET.MapProviders/GMapProvider.cs index 100540d2..746c13f3 100644 --- a/GMap.NET.Core/GMap.NET.MapProviders/GMapProvider.cs +++ b/GMap.NET.Core/GMap.NET.MapProviders/GMapProvider.cs @@ -127,11 +127,11 @@ static GMapProviders() public static readonly SpainMapProvider SpainMap = SpainMapProvider.Instance; - public static readonly CzechMapProvider CzechMap = CzechMapProvider.Instance; - public static readonly CzechSatelliteMapProvider CzechSatelliteMap = CzechSatelliteMapProvider.Instance; - public static readonly CzechHybridMapProvider CzechHybridMap = CzechHybridMapProvider.Instance; - public static readonly CzechTuristMapProvider CzechTuristMap = CzechTuristMapProvider.Instance; - public static readonly CzechHistoryMapProvider CzechHistoryMap = CzechHistoryMapProvider.Instance; + public static readonly CzechMapProviderOld CzechMapOld = CzechMapProviderOld.Instance; + public static readonly CzechSatelliteMapProviderOld CzechSatelliteMapOld = CzechSatelliteMapProviderOld.Instance; + public static readonly CzechHybridMapProviderOld CzechHybridMapOld = CzechHybridMapProviderOld.Instance; + public static readonly CzechTuristMapProviderOld CzechTuristMapOld = CzechTuristMapProviderOld.Instance; + public static readonly CzechHistoryMapProviderOld CzechHistoryMapOld = CzechHistoryMapProviderOld.Instance; public static readonly ArcGIS_Imagery_World_2D_MapProvider ArcGIS_Imagery_World_2D_Map = ArcGIS_Imagery_World_2D_MapProvider.Instance; public static readonly ArcGIS_ShadedRelief_World_2D_MapProvider ArcGIS_ShadedRelief_World_2D_Map = ArcGIS_ShadedRelief_World_2D_MapProvider.Instance; diff --git a/Testing/Demo.Docking/app.config b/Testing/Demo.Docking/app.config new file mode 100644 index 00000000..57c0f2cb --- /dev/null +++ b/Testing/Demo.Docking/app.config @@ -0,0 +1,3 @@ + + +