js 計(jì)算經(jīng)緯度距離

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 = ("兄臺(tái),這哪里是緯度???分明是想忽悠我嘛");
          show("warning");
          return "耍我?拒絕計(jì)算!";
      } else {
          hide("warning");
      }
      if ((Math . abs(lng1) > 180) || (Math . abs(lng2) > 180)) {
          show("warning");
          document . getElementById("warning") . innerHTML = ("兄臺(tái),這哪里是經(jīng)度?。糠置魇窍牒鲇莆衣?);
          return "耍我?拒絕計(jì)算!";
      } 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) 經(jīng)度(lng1)B:緯度(lat2) 經(jīng)度(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;

}

調(diào)用 calDis()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容