sábado, 26 de febrero de 2011

Cálculo de distancias entre dos geo-coordenadas con C#

En aplicaciones de información geográfica comúnmente es útil el cálculo de distancias entre dos coordenadas geográficas.


La siguiente función calcula la distancia entre dos puntos utilizando 







public const double EarthRadius = 6371;
        /// <summary>
        /// Returns the distance between two geocoordinates
        /// </summary>
        /// <param name="point1"></param>
        /// <param name="point2"></param>
        /// <returns></returns>
        public static double GetDistance(GeoCoordinate point1, GeoCoordinate point2) {
            double result = 0;
           
            double Lat = (point2.Latitude - point1.Latitude) * (Math.PI / 180);
            double Lon = (point2.Longitude - point1.Longitude) * (Math.PI / 180);
            double a = Math.Sin(Lat / 2) * Math.Sin(Lat / 2) +
                    Math.Cos(point1.Latitude *(Math.PI / 180)) * Math.Cos(point2.Latitude*(Math.PI / 180)) *
                    Math.Sin(Lon / 2) * Math.Sin(Lon / 2);

            double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
            result  = EarthRadius  * c;


            return result;
        }

Transacciones Fiori

  /UI2/CACHE Register service for UI2 cache use /UI2/CACHE_DEL Delete cache entries /UI2/CHIP Chip Registration /UI2/CUST Customizing of UI ...