我正在研究需要找出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的不错的解决方案
上面的链接演示是: