首页
/
每日頭條
/
生活
/
js計算點到直線的距離
js計算點到直線的距離
更新时间:2026-07-05 19:02:43

最近在做有關車輛定位及曆史軌迹的項目,需要顯示車輛當前位置信息、車輛曆史軌迹及行駛公裡數,需要這樣的效果。

js計算點到直線的距離(js根據經緯度換算行駛裡程)1

軌迹回放使用的百度的路書功能,包含了開始、暫定、重置功能,但是後台返回的數據隻包含了坐标點,

js計算點到直線的距離(js根據經緯度換算行駛裡程)2

行駛裡程數需要前台頁面計算。開始查資料,百度提供計算裡程的api,提供開始和結束的幾個坐标點,再選擇是騎車、步行、駕車、是否走高速之類的條件,百度自動計算行車裡程,但是這種誤差相對比較大,于是放棄。換了另一種方案,根據兩個坐标點計算段之間的距離,再累加,這種計算的是實際行駛的裡程,開始coding。

先找到計算兩個坐标點之間距離的方法

// 計算兩個坐标點距離 getFlatternDistance(lon1, lat1, lon2, lat2) { var DEF_PI = 3.14159265359; // PI var DEF_2PI = 6.28318530712; // 2*PI var DEF_PI180 = 0.01745329252; // PI/180.0 var DEF_R = 6370693.5; // radius of earth var ew1, ns1, ew2, ns2; var dx, dy, dew; var distance; // 角度轉換為弧度 ew1 = lon1 * DEF_PI180; ns1 = lat1 * DEF_PI180; ew2 = lon2 * DEF_PI180; ns2 = lat2 * DEF_PI180; // 經度差 dew = ew1 - ew2; // 若跨東經和西經180 度,進行調整 if (dew > DEF_PI) dew = DEF_2PI - dew; else if (dew < -DEF_PI) dew = DEF_2PI dew; dx = DEF_R * Math.cos(ns1) * dew; // 東西方向長度(在緯度圈上的投影長度) dy = DEF_R * (ns1 - ns2); // 南北方向長度(在經度圈上的投影長度) // 勾股定理求斜邊長 distance = Math.sqrt(dx * dx dy * dy).toFixed(0); return distance; }

獲取坐标集合,調用計算公式

// 計算裡程數 calculateMileage(history) { let mileage = 0; for (let i = 0; i < history.length - 1; i ) { mileage = parseInt( this.getFlatternDistance( history[i].longitude, history[i].latitude, history[i 1].longitude, history[i 1].latitude ) ); } this.mileage = mileage == 0 ? "--:--" : (mileage / 1000).toFixed(2) "公裡"; }

mileage就是最後的裡程數。看下計算時間

js計算點到直線的距離(js根據經緯度換算行駛裡程)3

749個坐标點,用時1.39501953125ms,對頁面顯示影響不大。至此結束。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
溫庭筠的全部詩句(溫庭筠詩詞雙絕)
溫庭筠的全部詩句(溫庭筠詩詞雙絕)
  【詩九首】        瑤瑟怨   冰簟銀床夢不成,碧天如水夜雲輕。   雁聲遠過潇湘去,十二樓中月自明。   贈少年   江海相逢客恨多,秋風葉下洞庭波。   酒酣夜别淮陰市,月照高樓一曲歌。   鹹陽值雨   鹹陽橋上雨如懸,萬點空濛隔釣船。   還似洞庭春水色,曉雲将入嶽陽天。   商山早行   晨起動征铎,客行悲故鄉。   雞聲茅店月,人迹闆橋...
2026-07-05
賈乃亮與李小璐的結婚紀念日(賈乃亮李小璐破鏡重圓)
賈乃亮與李小璐的結婚紀念日(賈乃亮李小璐破鏡重圓)
  真是年底要沖kpi了哈,他倆又被傳要複婚了?         其實這樣的言論,不是第一天出現了。   早在今年四月,   女方的評論區,      男方的評論區,      當時就有不少人挺看好兩人破鏡重圓。   之後,也被扒出一些情侶才有的巧合。   同一行程▽   4月賈乃亮到海南過生日,她被發現帶着甜馨一同前往。      #差不多同一時間,兩人也...
2026-07-05
我想穿上最美的婚紗嫁給最愛的你(你就是世上最美的新娘)
我想穿上最美的婚紗嫁給最愛的你(你就是世上最美的新娘)
  此篇文章為微信公衆号嗚莎花園以及多肉時光授權發布,作者靜靜。       靜靜的物種日志    第8篇 原創   鈴蘭生幽谷,瑩潔勝美玉。今天,我想為你講述的,是關于鈴蘭的故事。   如果你喜愛的植物很多,就總能遇到叫不上植物名字的小尴尬。然而,鈴蘭從來沒讓養花人尴尬過,因為,它總是讓人瞬間一見鐘情,随後讓人一生念念不忘。   每年的五月六月,正是鈴蘭花...
2026-07-05
古人說父親怎麼叫(古人把父親叫爹)
古人說父親怎麼叫(古人把父親叫爹)
  #頭條創作挑戰賽#   文·段宏剛   國學大師陳寅格說過這樣一句話:凡一字之釋義皆為一部文化史。   這句話對任何漢字都适用,生活中常見的“爸”、“爹”等字,同樣包含着豐富多彩的人文内涵。   “爸”和“爹”是書面語“父親”對應的口語,古人通常把父親叫“爹”或者“爹爹”,現代人則稱呼“爸”或者“爸爸”。西北人常用“大”來稱呼父親,在年齡較大的農村人裡邊...
2026-07-05
卡梅隆阿諾施瓦辛格(卡梅隆聯手阿諾)
卡梅隆阿諾施瓦辛格(卡梅隆聯手阿諾)
  楚天都市報10月24日訊(記者戎钰)北京時間10月23日晚,經典科幻動作電影《終結者》系列最新篇章《終結者:黑暗命運》在京舉行“重回戰場”中國首映發布會。導演蒂姆·米勒、主演阿諾·施瓦辛格、琳達·漢密爾頓齊齊亮相,解密制作曆程。憑借《流浪地球》助力中國科幻電影走進新世代的中國導演郭帆也出席活動,向偶像阿諾緻敬。      作為《終結者》系列的締造者之一、...
2026-07-05
Copyright 2023-2026 - www.tftnews.com All Rights Reserved