注册|登录

联系电话:024-31891684  13390130939
沈阳软件公司--沈阳软件定制

沈阳软件开发_沈阳软件公司_沈阳软件定制/软件/最新技术

Latest technology最新技术

根据经度和纬度获得俩点距离

浏览量:4309

public class Earth
{
/// <summary>
/// 地球的半径
/// </summary>
public const double EARTH_RADIUS = 6378.137;

/// <summary>
/// 计算坐标点的距离
/// </summary>
/// <param name="begin">开始的经度纬度</param>
/// <param name="end">结束的经度纬度</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>
/// 代表经度, 纬度
/// </summary>
public class Point
{
/// <param name="lat">纬度 X</param>
/// <param name="lng">经度 Y</param>
public Point(double lat, double lng)
{
this.lat = lat;
this.lng = lng;
}

// 纬度 X
private double lat;

// 经度 Y
private double lng;

/// <summary>
/// 代表纬度 X轴
/// </summary>
public double Lat { set; get; }

/// <summary>
/// 代表经度 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; } }
}

  1. if(navigator.geolocation){
  2. navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError);
  3. }else{
  4. alert("您的浏览器不支持Geolocation!");
  5. }

沈阳团购网|营口网站制作|沈阳软件公司|软件定制|网站建设|加盟易势|提交问题