Ejemplo n.º 1
0
        public static SwissGridLocation FromWgs84Approx(double latitude, double longitude)
        {
            double            x  = WGStoCHy(latitude, longitude);
            double            y  = WGStoCHx(latitude, longitude);
            SwissGridLocation sg = new SwissGridLocation(x, y);

            return(sg);
        }
Ejemplo n.º 2
0
        private SwissGridLocation GetSwissGridLocation(ILocation location)
        {
            SwissGridLocation sgLocation = location as SwissGridLocation;

            if (sgLocation != null)
            {
                return(sgLocation);
            }
            return(SwissGridLocation.FromWgs84Approx(location));
        }
Ejemplo n.º 3
0
        public double DistanceTo(ILocation to)
        {
            SwissGridLocation toSg = to as SwissGridLocation;

            if (toSg == null)
            {
                toSg = FromWgs84Approx(to);
            }
            double dx = X - toSg.X;
            double dy = Y - toSg.Y;

            return(Math.Sqrt(dx * dx + dy * dy));
        }
Ejemplo n.º 4
0
        public CartesianPoint ToCartesian(ILocation location, bool sanitize = true)
        {
            if (location == null)
            {
                return(new CartesianPoint());
            }
            SwissGridLocation sgLocation = GetSwissGridLocation(location);
            int x = (int)Math.Round(sgLocation.X * 100) - 42000000;
            int y = 35000000 - (int)Math.Round(sgLocation.Y * 100);

            if (sanitize)
            {
                return(SanitizeCartesian(new CartesianPoint(x, y)));
            }
            return(new CartesianPoint(x, y));
        }