using System; public static class LatLongConversionCalculator { //the conversion variable to go from degrees to radians private static readonly double RadConv = Math.PI / 180; //radius of the earth private static readonly double R = 6371e3; public static double PythagoreanDistanceFinder(double lat, double longi, double testableLat, double testableLong) { //convert to radians double φ1 = lat * RadConv; double φ2 = testableLat * RadConv; double λ1 = longi * RadConv; double λ2 = testableLong * RadConv; //Pythagorean projection formula double x = (λ2 - λ1) * Math.Cos((φ1 + φ2) / 2); double y = (φ2 - φ1); float distance = (float) (Math.Sqrt(x * x + y * y) * R); return distance; } public static double PythagoreanΔLatProjInverse(double latmeters, double lat) { //inverse of the latitude projection formula with a supplied meter value double φ1 = lat * RadConv; double y = latmeters / R; double radX = y + φ1; double DeltaX = (radX / RadConv) - lat; return DeltaX; } public static double PythagoreanΔLoniProjInverse(double longimeters, double lat, double longi) { //inverse of the longitude projection formula with a supplied meter value double φ1 = lat * RadConv; double λ1 = longi * RadConv; double x = longimeters / R; double radY = (x / Math.Cos((φ1 + φ1) * 0.5)) + λ1; double DeltaY = (radY / RadConv) - longi; return DeltaY; } }