我正在研究需要找出200英里范围内最近的医院的应用程序。我有一份经度和纬度已保存在数据库中的医院列表,但是我想获取设备位置。我如何获取设备位置。我在下面使用以下代码。

namespace GoogleMaps
{
    class Program
    {
        private double HaversineDistance(double firstLat, double firstLong, double secondLat, double secondLong)
        {
            double dLat = this.toRadian(secondLat - firstLat);
            double dLon = this.toRadian(secondLong - firstLong);

            double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
            Math.Cos(this.toRadian(firstLat)) * Math.Cos(this.toRadian(secondLat)) *
            Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
            double c = 2 * Math.Asin(Math.Min(1, Math.Sqrt(a)));
            double d = 6371 * 2 * Math.Asin(Math.Min(1, Math.Sqrt(a)));
            return d;

        }

        private double toRadian(double val)
        {
            return (Math.PI / 180) * val;
        }

        static void Main(string[] args)
        {
            double dist;
            Program a = new Program();
            dist = a.HaversineDistance(28.6100, 77.2300, 26.8470, 80.9470);
            Console.WriteLine("Harversine Distance  = " + dist);
            Console.ReadKey();
        }
    }
}

最佳答案

请您可以使用
GeoCoordinateWatcher Class

或参见this

这也是click的不错的解决方案

上面的链接演示是:

10-06 14:58