コード例 #1
0
        public static double CalcDistance(double lat1, double lng1, double lat2, double lng2, GeoCodeCalcMeasurement m)
        {
            double radius = GeoCodeCalc.EarthRadiusInMiles;

            if (m == GeoCodeCalcMeasurement.Kilometers) { radius = GeoCodeCalc.EarthRadiusInKilometers; }
            return radius * 2 * Math.Asin(Math.Min(1, Math.Sqrt((Math.Pow(Math.Sin((DiffRadian(lat1, lat2)) / 2.0), 2.0) + Math.Cos(ToRadian(lat1)) * Math.Cos(ToRadian(lat2)) * Math.Pow(Math.Sin((DiffRadian(lng1, lng2)) / 2.0), 2.0)))));
        }
コード例 #2
0
        public static double CalcDistance(string latLng1, string latLng2, GeoCodeCalcMeasurement m)
        {
            try
            {
                double   lat1, lng1, lat2, lng2;
                string[] latlngArray = latLng1.Split(',');
                lat1 = Convert.ToDouble(latlngArray[0]);
                lng1 = Convert.ToDouble(latlngArray[1]);

                latlngArray = latLng2.Split(',');
                lat2        = Convert.ToDouble(latlngArray[0]);
                lng2        = Convert.ToDouble(latlngArray[1]);

                return(GeoCodeCalc.CalcDistance(lat1, lng1, lat2, lng2, m));
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
コード例 #3
0
        internal static double CalcDistance(double lat1, double lng1,
                                            double lat2, double lng2, GeoCodeCalcMeasurement m)
        {
            double radius = GeoCodeCalculator.EarthRadiusInMiles;

            if (m == GeoCodeCalcMeasurement.Kilometers)
            {
                radius = GeoCodeCalculator.EarthRadiusInKilometers;
            }

            return(radius * 2 * Math.Asin(
                       Math.Min(1,
                                Math.Sqrt(
                                    Math.Pow(Math.Sin((DiffRadian(lat1, lat2)) / 2.0), 2.0)
                                    + Math.Cos(ToRadian(lat1))
                                    * Math.Cos(ToRadian(lat2))
                                    * Math.Pow(Math.Sin((DiffRadian(lng1, lng2)) / 2.0), 2.0)
                                    )
                                )
                       ));
        }
コード例 #4
0
        //dsfsdfsdfsdf
        //sdfsdfs
        //sdfbsdfhjsd
        //dsjhfkdjs
        //sdjgfsdgjfgds
        //ksdhfhsdgj
        public static double CalcDistance(TelegramBot.Models.LocationM Location1, TelegramBot.Models.LocationM Location2, GeoCodeCalcMeasurement m)
        {
            double radius = GeoCodeCalc.EarthRadiusInMiles;

            if (m == GeoCodeCalcMeasurement.Kilometers)
            {
                radius = GeoCodeCalc.EarthRadiusInKilometers;
            }
            return(radius * 2 * Math.Asin(Math.Min(1, Math.Sqrt((Math.Pow(Math.Sin((DiffRadian(Location1.X, Location2.X)) / 2.0), 2.0) + Math.Cos(ToRadian(Location1.X)) * Math.Cos(ToRadian(Location2.X)) * Math.Pow(Math.Sin((DiffRadian(Location1.Y, Location2.Y)) / 2.0), 2.0))))));
        }
コード例 #5
0
ファイル: Utils.cs プロジェクト: slay22/TrainstationAdvisor
        /// <summary>
        /// Calculate the distance between two geocodes.
        /// </summary>
        public static double CalcDistance(double ALat1, double ALong1, double ALat2, double ALong2, GeoCodeCalcMeasurement AMeasurement)
        {
            double radius = (AMeasurement == GeoCodeCalcMeasurement.Kilometers ? Utils.EarthRadiusInKilometers : Utils.EarthRadiusInMiles);

            return (radius * 2 * Math.Asin( Math.Min( 1, Math.Sqrt( ( Math.Pow( Math.Sin( ( DiffRadian( ALat1, ALat2 ) ) / 2.0 ), 2.0 ) + Math.Cos( ToRadian( ALat1 ) ) * Math.Cos( ToRadian( ALat2 ) ) * Math.Pow( Math.Sin( ( DiffRadian( ALong1, ALong2 ) ) / 2.0 ), 2.0 ) ) ) ) ));
        }
コード例 #6
0
        /// <summary>
        /// Calculate the distance between two geocodes.
        /// </summary>
        public static double CalcDistance(double ALat1, double ALong1, double ALat2, double ALong2, GeoCodeCalcMeasurement AMeasurement)
        {
            double radius = (AMeasurement == GeoCodeCalcMeasurement.Kilometers ? Utils.EarthRadiusInKilometers : Utils.EarthRadiusInMiles);

            return(radius * 2 * Math.Asin(Math.Min(1, Math.Sqrt((Math.Pow(Math.Sin((DiffRadian(ALat1, ALat2)) / 2.0), 2.0) + Math.Cos(ToRadian(ALat1)) * Math.Cos(ToRadian(ALat2)) * Math.Pow(Math.Sin((DiffRadian(ALong1, ALong2)) / 2.0), 2.0))))));
        }