Files @ 65c134a3d619
Branch filter:

Location: seniordesign-ui/Testing/ConsoleApplication/Program.cs

mkanning@CL-ENS241-10.cedarville.edu
Initial import of mapping source (huge commit)
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<Placemark> 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();
      }
   }
}