js 计算经纬度距离

function rad(d)

{

  return d * Math . PI / 180.0;

}

function GetDistance(lat1,  lng1,  lat2,  lng2)
  {
      hide("warning");
      if ((Math . abs(lat1) > 90) || (Math . abs(lat2) > 90)) {
          document . getElementById("warning") . innerHTML = ("兄台,这哪里是纬度啊?分明是想忽悠我嘛");
          show("warning");
          return "耍我?拒绝计算!";
      } else {
          hide("warning");
      }
      if ((Math . abs(lng1) > 180) || (Math . abs(lng2) > 180)) {
          show("warning");
          document . getElementById("warning") . innerHTML = ("兄台,这哪里是经度啊?分明是想忽悠我嘛");
          return "耍我?拒绝计算!";
      } else {
          hide("warning");
      }
      var radLat1 = rad(lat1);
      var radLat2 = rad(lat2);
      var a = radLat1 - radLat2;
      var b = rad(lng1) - rad(lng2);
      var s = 2 * Math . asin(Math . sqrt(Math . pow(Math . sin(a / 2), 2) +
                  Math . cos(radLat1) * Math . cos(radLat2) * Math . pow(Math . sin(b / 2), 2)));
      s = s * 6378.137;// EARTH_RADIUS 地球赤道长度;
      s = Math . round(s * 10000) / 10000;
      return s;
  }

function calDis()
{
    //A:纬度(lat1) 经度(lng1)B:纬度(lat2) 经度(lng2)

    var lat1 = document . getElementById("lat1") . value * 1;
    var lat2 = document . getElementById("lat2") . value * 1;
    var lng1 = document . getElementById("lng1") . value * 1;
    var lng2 = document . getElementById("lng2") . value * 1;
    var dis = GetDistance(lat1, lng1, lat2, lng2);
    document . getElementById("distance") . value = dis;

}

调用 calDis()

你可能感兴趣的:(js 计算经纬度距离)