посчитать расстояние

от одной точки до другой
ну скажем имеем

от 75.3645057 & 94.21875 до 55.8753108 & 37.7929688 = ?

как это чисто математически решается ?
 
Ответ: посчитать расстояние

Можно более-менее точно посчитать использую таблицу значений расстояния одного градуса с запада на восток при разных широтах.
Самое простое - найти обе точки на Google Earth и провести линейку между ними. Так будет намного точнее. И надо хотя бы указывать в координатах северную/южную широту, восточную/западную долготу.
 
Ответ: посчитать расстояние

не это не катит. необходим имеено подсчет математикой с переводом конечного результата в километраж.
 
А я викимапией мерил: указываешь точку (add place) устанавливаешь курсор на вторую точку и в поиске набираешь название первой. Километраж будет указан :)
 
Re: Ответ: посчитать расстояние

Искомый код со ссылками.

Код:
// http://www.codeproject.com/KB/cs/distancebetweenlocations.aspx

        public static double Calc(double Lat1, double Long1, double Lat2, double Long2)
        {
            /*
                The Haversine formula according to Dr. Math.
                http://mathforum.org/library/drmath/view/51879.html
                    
                dlon = lon2 - lon1
                dlat = lat2 - lat1
                a = (sin(dlat/2))^2 + cos(lat1) * cos(lat2) * (sin(dlon/2))^2
                c = 2 * atan2(sqrt(a), sqrt(1-a)) 
                d = R * c
                    
                Where
                    * dlon is the change in longitude
                    * dlat is the change in latitude
                    * c is the great circle distance in Radians.
                    * R is the radius of a spherical Earth.
                    * The locations of the two points in 
                        spherical coordinates (longitude and 
                        latitude) are lon1,lat1 and lon2, lat2.
            */
            double dDistance = Double.MinValue;
            double dLat1InRad = Lat1 * (Math.PI / 180.0);
            double dLong1InRad = Long1 * (Math.PI / 180.0);
            double dLat2InRad = Lat2 * (Math.PI / 180.0);
            double dLong2InRad = Long2 * (Math.PI / 180.0);

            double dLongitude = dLong2InRad - dLong1InRad;
            double dLatitude = dLat2InRad - dLat1InRad;

            // Intermediate result a.

            double a = Math.Pow(Math.Sin(dLatitude / 2.0), 2.0) +
                       Math.Cos(dLat1InRad) * Math.Cos(dLat2InRad) *
                       Math.Pow(Math.Sin(dLongitude / 2.0), 2.0);

            // Intermediate result c (great circle distance in Radians).

            double c = 2.0 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1.0 - a));

            // Distance.

            // const Double kEarthRadiusMiles = 3956.0;

            const Double kEarthRadiusKms = 6376.5;
            dDistance = kEarthRadiusKms * c;

            return dDistance;
        }
 
Сверху