最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript如何計算兩個地理坐標(biāo)點之間的距離(支持米與公里/千米)

 更新時間:2025年07月22日 09:15:41   作者:加油樂  
在現(xiàn)代的Web開發(fā)中,計算兩個坐標(biāo)間的距離是一項常見的需求,下面這篇文章主要介紹了JavaScript如何計算兩個地理坐標(biāo)點之間的距離(支持米與公里/千米)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、 前言

  1. 角度轉(zhuǎn)弧度:將經(jīng)緯度從角度轉(zhuǎn)換為弧度

  2. 計算差值:計算兩點間的緯度和經(jīng)度差

  3. 應(yīng)用哈弗辛公式

    • sin²(Δlat/2) + cos(lat1) * cos(lat2) * sin²(Δlng/2)
    • 計算兩點間的中心角
  4. 計算弧長2 * R * arcsin(√上述結(jié)果)

  5. 單位轉(zhuǎn)換:根據(jù)參數(shù)返回公里或米單位

二、 代碼注釋及參數(shù)詳解

注意:使用經(jīng)緯度WGS84、GCJ-02、BD-09等類型,前后參數(shù)需對應(yīng)類型,否則存在偏差

有毒,解讀后食用

/**
 * @param {number} lat1 - 第一個點的緯度
 * @param {number} lng1 - 第一個點的經(jīng)度
 * @param {number} lat2 - 第二個點的緯度
 * @param {number} lng2 - 第二個點的經(jīng)度
 * @param {boolean} kilometreFlag - 單位標(biāo)志:true返回公里(km)并保留1位小數(shù),false返回米(m)并取整
 * @returns {string} 兩點間的距離字符串(帶單位)
 */
function getDistance(lat1, lng1, lat2, lng2, kilometreFlag = false) {
window.location.
  // 將角度轉(zhuǎn)換為弧度
  function rad(d) {
    return d * Math.PI / 180;
  }

  // 將經(jīng)緯度從角度轉(zhuǎn)換為弧度
  const radLat1 = rad(lat1);
  const radLat2 = rad(lat2);

  // 計算緯度和經(jīng)度的差值(弧度)
  const a = radLat1 - radLat2;
  const b = rad(lng1) - rad(lng2);

  // 使用哈弗辛公式計算兩點間的球面距離
  let 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)
    )
  );

  // 乘以地球半徑(6378.137公里)得到距離(公里)
  s = s * 6378.137;

  // 根據(jù)單位標(biāo)識返回不同單位和精度的結(jié)果
  if(kilometreFlag) {
    // 返回公里單位,保留1位小數(shù)
    s = s.toFixed(1) + 'km';
  }
  else {
    // 返回米單位,四舍五入取整
    s = Math.round(s * 1000).toFixed(0) + 'm';
  }
  return s;
}

三、使用實例

// 示例1:計算兩個近距離點(約500米)
const dist1 = getDistance(39.915, 116.404, 39.918, 116.408);
console.log(dist1); // 輸出類似 "478m"

// 示例2:計算兩個遠距離點(約1064公里) 北京-上海
const dist2 = getDistance(39.906217, 116.3912757, 31.2513263, 121.3912291, true);
console.log(dist2); // 輸出類似 "1064.0km"

// 示例3:使用默認單位(米)北京-上海
const dist3 = getDistance(39.906217, 116.3912757, 31.2513263, 121.3912291);
console.log(dist3); // 輸出類似 "1064022m"

總結(jié) 

到此這篇關(guān)于JavaScript如何計算兩個地理坐標(biāo)點之間的距離(支持米與公里/千米)的文章就介紹到這了,更多相關(guān)JS計算兩個地理坐標(biāo)點距離內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于arguments,callee,caller等的測試

    關(guān)于arguments,callee,caller等的測試

    關(guān)于arguments,callee,caller等的測試...
    2006-12-12
  • 通過Jscript中@cc_on 語句識別IE瀏覽器及版本的代碼

    通過Jscript中@cc_on 語句識別IE瀏覽器及版本的代碼

    通過Jscript中@cc_on 語句識別IE瀏覽器及版本的代碼,需要的朋友可以參考下。
    2011-05-05
  • 使用Bootstrap打造特色進度條效果

    使用Bootstrap打造特色進度條效果

    這篇文章給大家分享了基于bootstrap打造的特色進度條效果,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-05-05
  • uni-app自定義導(dǎo)航欄右側(cè)做增加按鈕并跳轉(zhuǎn)鏈接功能

    uni-app自定義導(dǎo)航欄右側(cè)做增加按鈕并跳轉(zhuǎn)鏈接功能

    這篇文章主要介紹了uni-app自定義導(dǎo)航欄右側(cè)做增加按鈕并跳轉(zhuǎn)鏈接,本文通過實例代碼給大家分享實現(xiàn)思路,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • javascript結(jié)合canvas實現(xiàn)圖片旋轉(zhuǎn)效果

    javascript結(jié)合canvas實現(xiàn)圖片旋轉(zhuǎn)效果

    圖片的旋轉(zhuǎn)可以說是一種效果,但是逐漸旋轉(zhuǎn)已經(jīng)不單單是屬于視覺效果那個范疇,其更具有使用性,功能性。照片有時候是需要橫過來的拍的,當(dāng)我們預(yù)覽或共享到web上時需要進行旋轉(zhuǎn)。這個操作在以往可能更多的是交給軟件去完成,然后再將旋轉(zhuǎn)到正常角度的圖片發(fā)布到web上。
    2015-05-05
  • JS中向?qū)ο笾刑砑訉ο蟮?種方法

    JS中向?qū)ο笾刑砑訉ο蟮?種方法

    這篇文章主要給大家介紹了關(guān)于JS中向?qū)ο笾刑砑訉ο蟮?種方法,在JavaScript中對象可以通過兩種方法添加對象,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • JavaScript正則表達式實例詳解

    JavaScript正則表達式實例詳解

    在編寫處理字符串的程序或網(wǎng)頁時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達式就是用于描述這些規(guī)則的工具。換句話說,正則表達式就是記錄文本規(guī)則的代碼。
    2016-10-10
  • JavaScript ES6的函數(shù)拓展

    JavaScript ES6的函數(shù)拓展

    這篇文章主要介紹了JavaScript ES6的函數(shù)拓展,
    2022-01-01
  • js插件實現(xiàn)圖片滑動驗證碼

    js插件實現(xiàn)圖片滑動驗證碼

    這篇文章主要為大家詳細介紹了js插件實現(xiàn)圖片滑動驗證碼,滑動模塊,實現(xiàn)驗證功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 簡介EasyUI datagrid editor combogrid搜索框的實現(xiàn)

    簡介EasyUI datagrid editor combogrid搜索框的實現(xiàn)

    這篇文章主要介紹了EasyUI datagrid editor combogrid搜索框的實現(xiàn),涉及到EasyUI中combogrid的使用方法的相關(guān)知識,非常具有參考價值,需要的朋友可以參考下
    2016-04-04

最新評論

布尔津县| 宜丰县| 深水埗区| 四平市| 西峡县| 阿拉善左旗| 固安县| 新兴县| 静乐县| 华池县| 历史| 扎赉特旗| 托克逊县| 长垣县| 湘乡市| 闽侯县| 收藏| 进贤县| 乐山市| 海南省| 永和县| 绥宁县| 太仓市| 淮安市| 海晏县| 灵武市| 开阳县| 嘉黎县| 阜南县| 高碑店市| 大冶市| 望谟县| 行唐县| 樟树市| 兴业县| 鄂托克旗| 城市| 来安县| 绥芬河市| 陆良县| 辽中县|