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); }
private SwissGridLocation GetSwissGridLocation(ILocation location) { SwissGridLocation sgLocation = location as SwissGridLocation; if (sgLocation != null) { return(sgLocation); } return(SwissGridLocation.FromWgs84Approx(location)); }
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)); }
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)); }