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()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容