根據(jù)經(jīng)度和緯度獲得倆點(diǎn)距離
瀏覽量:4532
public class Earth
{
/// <summary>
/// 地球的半徑
/// </summary>
public const double EARTH_RADIUS = 6378.137;
/// <summary>
/// 計(jì)算坐標(biāo)點(diǎn)的距離
/// </summary>
/// <param name="begin">開始的經(jīng)度緯度</param>
/// <param name="end">結(jié)束的經(jīng)度緯度</param>
/// <returns>距離(公里)</returns>
public static double GetDistance(Point begin, Point end)
{
double lat = begin.RadLat - end.RadLat;
double lng = begin.RadLng - end.RadLng;
double dis = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(lat / 2), 2) + Math.Cos(begin.RadLat) * Math.Cos(end.RadLat) * Math.Pow(Math.Sin(lng / 2), 2)));
dis = dis * EARTH_RADIUS;
dis = Math.Round(dis * 1e4) / 1e4;
return dis;
}
}
/// <summary>
/// 代表經(jīng)度, 緯度
/// </summary>
public class Point
{
/// <param name="lat">緯度 X</param>
/// <param name="lng">經(jīng)度 Y</param>
public Point(double lat, double lng)
{
this.lat = lat;
this.lng = lng;
}
// 緯度 X
private double lat;
// 經(jīng)度 Y
private double lng;
/// <summary>
/// 代表緯度 X軸
/// </summary>
public double Lat { set; get; }
/// <summary>
/// 代表經(jīng)度 Y軸
/// </summary>
public double Lng { get; set; }
public double RadLat { get { return lat * Math.PI / 180; } }
public double RadLng { get { return lng * Math.PI / 180; } }
}
- if(navigator.geolocation){
- navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError);
- }else{
- alert("您的瀏覽器不支持Geolocation!");
- }
下一篇:不同的搜索引擎的反向鏈接查詢命令