diff --git a/Testing/ConsoleApplication/Program.cs b/Testing/ConsoleApplication/Program.cs new file mode 100644 --- /dev/null +++ b/Testing/ConsoleApplication/Program.cs @@ -0,0 +1,273 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net; +using System.Security.Cryptography; +using System.Text; +using DotSpatial.Projections; +using GMap.NET; +using GMap.NET.Internals; +using GMap.NET.MapProviders; +using GMap.NET.Projections; +using System.Threading; +using GMap.NET.WindowsForms; + +namespace ConsoleApplication +{ + class Program + { + static void Main(string[] args) + { + //if(false) + { + GeoCoderStatusCode status; + var pp1 = GMapProviders.YahooMap.GetPoint("Lithuania,Vilnius", out status); + + //var pl = GMapProviders.OpenStreetMap.GetPlacemark(pp1.Value, out status); + } + + if(false) + { + var p = PlateCarreeProjectionDarbAe.Instance; + + var l = new PointLatLng(29.4052130085331, 41.522866508209); + + Debug.WriteLine("121 * 256: " + 121 * 256 + "px : Y"); + Debug.WriteLine("144 * 256: " + 144 * 256 + "px : X"); + + Debug.WriteLine("l: " + l); + + var px = p.FromLatLngToPixel(l, 0); + + Debug.WriteLine("FromLatLngToPixel: " + px); + + var ll = p.FromPixelToLatLng(px, 0); + Debug.WriteLine("FromPixelToLatLng: " + ll); + + + var tl = p.FromPixelToTileXY(px); + + Debug.WriteLine("FromPixelToTileXY: " + tl); + } + + /* + 0/1 = 2 + 1/2 = 1,5 + 2/3 = 2 + 3/4 = 2 + 4/5 = 2,5 + 5/6 = 2 + 6/7 = 2 + 7/8 = 2 + 8/9 = 2,5 + 9/10 = 2 + 10/11 = 2,5 + 11/12 = 2 + */ + + if(false) + { + GMapProvider.TileImageProxy = WindowsFormsImageProxy.Instance; + + var p = LKS94Projection.Instance; + //var p = PlateCarreeProjection.Instance; + + var pos = new PointLatLng(54.6961334816182, 25.2985095977783); + + { + var zoom = 4; + var px = p.FromPixelToTileXY(p.FromLatLngToPixel(pos, zoom)); + Exception ex = null; + var img = GMaps.Instance.GetImageFrom(GMapProviders.LithuaniaMap, px, zoom, out ex); + File.WriteAllBytes(zoom + "z-" + px + ".png", img.Data.ToArray()); + } + + for(int i = 0; i < 12; i++) + { + double scale = p.GetGroundResolution(i, pos.Lat); + double scale2 = p.GetGroundResolution(i + 1, pos.Lat); + + var s = scale / scale2; + + Debug.WriteLine(i + "/" + (i + 1) + " = " + s); + } + } + +#if DEBUG + if(false) + { + GMapProvider.TileImageProxy = WindowsFormsImageProxy.Instance; + + //GMaps.Instance.PrimaryCache.DeleteOlderThan(DateTime.Now, GMapProviders.GoogleMap.DbId); + + GMaps.Instance.Mode = AccessMode.CacheOnly; + + using(Core c = new Core()) + { + //c.compensationOffset = new GPoint(200, 200); + + c.minZoom = 1; + c.maxZoom = 25; + c.Zoom = 16; + c.Provider = GMapProviders.OpenStreetMap; + c.Position = new PointLatLng(54.6961334816182, 25.2985095977783); + c.OnMapSizeChanged(400, 400); + + c.OnMapOpen(); + + Debug.WriteLine("Position: " + c.Position); + Debug.WriteLine("renderOffset: " + c.renderOffset); + Debug.WriteLine("compensationOffset: " + c.compensationOffset); + + var l = c.FromLatLngToLocal(c.Position); + Debug.WriteLine("local: " + l); + + var g = c.FromLocalToLatLng(l.X, l.Y); + Debug.WriteLine("geo: " + g); + + //c.ReloadMap(); + + Console.ReadLine(); + + c.OnMapClose(); + } + } + + if(false) + { + int i = 0; + + //while(true) + { + Console.WriteLine(i + " start"); + Debug.WriteLine(i + " start"); + + //using(Core c = new Core()) + Core c = new Core(); + { + var f = c.OnMapOpen(); + + Console.WriteLine("wait"); + Console.ReadLine(); + + //c.OnMapClose(); + } + c = null; + + Debug.WriteLine("end"); + Console.WriteLine("end"); + + Console.ReadLine(); + + GC.Collect(); + + //if(i++ > 10) + //{ + // GC.Collect(); + // i = 0; + //} + } + } +#endif + + if(false) + { + List plc = null; + var st = GMapProviders.GoogleMap.GetPlacemarks(new PointLatLng(54.6961334816182, 25.2985095977782), out plc); + if(st == GeoCoderStatusCode.G_GEO_SUCCESS && plc != null) + { + foreach(var pl in plc) + { + if(!string.IsNullOrEmpty(pl.PostalCodeNumber)) + { + Debug.WriteLine("Accuracy: " + pl.Accuracy + ", " + pl.Address + ", PostalCodeNumber: " + pl.PostalCodeNumber); + } + } + } + } + + if(false) + { + var p1 = new PointLatLng(54.6961334816182, 25.2985095977782); + var p2 = new PointLatLng(54.7061334816182, 25.3085095977783); + + //GMaps.Instance.ImportFromGMDB(@"C:\Users\m.dambrauskas\AppData\Local\GMap.NET\TileDBv5\en\Data - Copy.gmdb"); + + //var route = GMapProviders.OpenStreetMap.GetRoute(p1, p2, false, false, 10); + //var route = GMapProviders.CloudMadeMap.GetRoute(p1, p2, false, false, 10); + + //Debug.WriteLine(GMapProviders.BingHybridMap.Name + ":" + GMapProviders.BingHybridMap.DbId); + + GDirections ss; + var xx = GMapProviders.GoogleMap.GetDirections(out ss, p1, p2, false, false, false, false, false); + + GeoCoderStatusCode status; + var pp1 = GMapProviders.GoogleMap.GetPoint("Lithuania,Vilnius", out status); + var pp2 = GMapProviders.GoogleMap.GetPoint("Lithuania,Kaunas", out status); + if(pp1.HasValue && pp2.HasValue) + { + GDirections s; + //var x = GMapProviders.GoogleMap.GetDirections(out s, "Lithuania,Vilnius", "Lithuania,Kaunas", false, false, false, true); + //if(x == DirectionsStatusCode.OK) + var x = GMapProviders.GoogleMap.GetDirections(out s, pp1.Value, pp2.Value, false, false, false, false, true); + { + Debug.WriteLine(s.Summary + ", " + s.Copyrights); + Debug.WriteLine(s.StartAddress + " -> " + s.EndAddress); + Debug.WriteLine(s.Distance); + Debug.WriteLine(s.Duration); + foreach(var step in s.Steps) + { + Debug.WriteLine(step); + } + } + } + } + + if(false) + { + //-34,8859309407532, Lng=-58,359375 + PointLatLng p1 = new PointLatLng(-34.608, -58.348); + PointLatLng p2 = new PointLatLng(-34.608, -58.348); + + //Sets up a array to contain the x and y coordinates + double[] xy = new double[4] { p1.Lng, p1.Lat, p2.Lng, p2.Lat }; + + //An array for the z coordinate + double[] z = new double[1]; + z[0] = 1; + + ProjectionInfo pStart = KnownCoordinateSystems.Geographic.World.WGS1984; + + //ProjectionInfo pEnd = new ProjectionInfo("+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=4200000 +y_0=-1300000 +ellps=WGS84 +datum=WGS84 +to_meter=0.03125 +no_defs"); + ProjectionInfo pEnd = new ProjectionInfo("+proj=tmerc +lat_0=-34.629269 +lon_0=-58.4633 +k=0.9999980000000001 +x_0=100000 +y_0=100000 +ellps=intl +units=m +no_defs"); + + Reproject.ReprojectPoints(xy, z, pStart, pEnd, 0, 2); + + Debug.WriteLine(" true1: " + (int)xy[0] + "; " + (int)xy[1]); + + //var prj = new MapyCZProjection(); + //{ + // var p2 = prj.WGSToPP(y, x); + + // Debug.WriteLine("false1: " + p2[0] + "; " + p2[1]); + + // var p3 = prj.PPToWGS(p2[0], p2[1]); + + // Reproject.ReprojectPoints(xy, z, pEnd, pStart, 0, 1); + + // Debug.WriteLine(""); + // Debug.WriteLine(" true2: " + xy[0] + "; " + xy[1]); + // Debug.WriteLine("false2: " + p3[1] + "; " + p3[0]); + //} + // 134400000],PARAMETER["false_northing",-41600000 + } + + // stop caching immediately + GMaps.Instance.CancelTileCaching(); + + //Console.ReadLine(); + } + } +}