書籤    
鞋碼換算    
根號化簡    
梯形面積    
圓的計算    
扇形面積    
橢圓面積    
圓柱體積    
球的體積    
圓錐體積    
圓管體積    
年齡計算    
天數計算    
複利計算    
單利計算    
利息計算    
現值計算    
ROI 計算機    
IRR 計算機    
GDP 計算機    
ROAS 計算    
BMI 計算機    
BMR 計算機    
1RM 計算機    
進位轉換    
薪資換算    
油錢計算    
油耗計算    
坡度計算    
   新增
機率與隨機計算工具
獨立事件機率
獨立事件機率
兩事件機率反推
兩事件機率反推
重複試驗機率
重複試驗機率
條件機率與貝氏定理
條件機率與貝氏定理
期望值計算機
期望值計算機
二項分布計算機
二項分布計算機
排列組合計算
排列組合計算
環狀排列計算
環狀排列計算
重複組合計算
重複組合計算
亂數產生器
亂數產生器
平均與統計計算工具
平均數計算機
平均數計算機
眾數中位數計算
眾數中位數計算
標準差計算機
標準差計算機
四分位數計算機
四分位數計算機
次數分配表
次數分配表
相關係數計算機
相關係數計算機
常態分布機率
常態分布機率
z 分數計算機
z 分數計算機
信賴區間計算機
信賴區間計算機
樣本數計算機
樣本數計算機
捉放法與抽樣調查
捉放法與抽樣調查
p 值計算機
p 值計算機
比例與百分比計算工具
百分比計算機
百分比計算機
增減率計算機
增減率計算機
百分比差異
百分比差異
百分誤差計算機
百分誤差計算機
比例計算機
比例計算機
打折計算機
打折計算機
營業稅計算機
營業稅計算機
毛利率計算機
毛利率計算機
速度計算工具
速率計算機
速率計算機
密度與濃度計算工具
密度計算機
密度計算機
莫耳濃度計算機
莫耳濃度計算機
分子量/莫耳質量
分子量/莫耳質量
物理與電學計算工具
歐姆定律計算
歐姆定律計算
瓦數↔安培換算
瓦數↔安培換算
電阻色碼計算
電阻色碼計算
電壓降計算
電壓降計算
單位換算計算工具
坪↔平方公尺換算
坪↔平方公尺換算
重量單位換算
重量單位換算
鞋碼換算
鞋碼換算
整數與正負數計算工具
除法直式計算
除法直式計算
最小公倍數計算
最小公倍數計算
最大公因數計算
最大公因數計算
正負數計算機
正負數計算機
質因數分解
質因數分解
一次不定方程式
一次不定方程式
同餘與餘數計算
同餘與餘數計算
因數計算機
因數計算機
羅馬數字轉換
羅馬數字轉換
分數、小數與四捨五入計算工具
分數計算機
分數計算機
帶分數計算機
帶分數計算機
約分計算機
約分計算機
分數換小數
分數換小數
小數換分數
小數換分數
四捨五入計算機
四捨五入計算機
方程式與不等式計算工具
一元一次方程式
一元一次方程式
聯立方程式
聯立方程式
一元二次方程式
一元二次方程式
絕對值方程式
絕對值方程式
一元二次不等式
一元二次不等式
多項式與乘法展開計算工具
二項式定理
二項式定理
平方根與 n 次方根計算工具
根號化簡
根號化簡
開根號計算
開根號計算
指數與對數計算工具
次方計算機
次方計算機
對數計算機
對數計算機
常用對數與位數
常用對數與位數
科學記號換算
科學記號換算
科學記號運算
科學記號運算
半衰期計算機
半衰期計算機
複數計算工具
複數計算機
複數計算機
複數極式轉換
複數極式轉換
棣美弗定理
棣美弗定理
函數與圖形計算工具
直線斜率計算
直線斜率計算
一次函數計算機
一次函數計算機
正比反比計算機
正比反比計算機
二次函數 y=ax²
二次函數 y=ax²
兩點距離公式
兩點距離公式
空間兩點距離
空間兩點距離
內分點與外分點
內分點與外分點
點到直線的距離
點到直線的距離
經緯度距離計算
經緯度距離計算
配方法計算機
配方法計算機
圓方程式計算機
圓方程式計算機
圓錐曲線計算機
圓錐曲線計算機
極坐標轉換
極坐標轉換
數列計算工具
等差數列計算
等差數列計算
等比數列計算
等比數列計算
費氏數列計算
費氏數列計算
遞迴關係式計算
遞迴關係式計算
向量計算工具
向量計算機
向量計算機
向量外積計算
向量外積計算
矩陣計算工具
矩陣計算機
矩陣計算機
行列式計算機
行列式計算機
反矩陣計算
反矩陣計算
平面圖形計算工具
sin cos tan 計算
sin cos tan 計算
度與弧度換算
度與弧度換算
三角函數疊合
三角函數疊合
三角形計算機
三角形計算機
三角形面積計算
三角形面積計算
直角三角形計算
直角三角形計算
畢氏定理計算
畢氏定理計算
多邊形內角外角
多邊形內角外角
相似比與面積比
相似比與面積比
平行線與角
平行線與角
長方形面積
長方形面積
平行四邊形面積
平行四邊形面積
梯形面積
梯形面積
圓的計算
圓的計算
扇形面積
扇形面積
圓周角定理
圓周角定理
橢圓面積
橢圓面積
立體圖形計算工具
正方體體積
正方體體積
正方體表面積
正方體表面積
長方體體積
長方體體積
長方體表面積
長方體表面積
圓柱體積
圓柱體積
圓柱表面積
圓柱表面積
球的體積
球的體積
球的表面積
球的表面積
球冠的體積
球冠的體積
球冠的表面積
球冠的表面積
橢球的體積
橢球的體積
橢球的表面積
橢球的表面積
四角錐體積
四角錐體積
四角錐表面積
四角錐表面積
圓錐體積
圓錐體積
圓錐表面積
圓錐表面積
圓錐台體積
圓錐台體積
圓錐台表面積
圓錐台表面積
圓管體積
圓管體積
膠囊形體積
膠囊形體積
膠囊表面積
膠囊表面積
日期與時間計算工具
年齡計算
年齡計算
天數計算
天數計算
幾天後的日期
幾天後的日期
幾小時後的日期時間
幾小時後的日期時間
星期幾查詢
星期幾查詢
時間加減計算機
時間加減計算機
時差計算機
時差計算機
工時計算機
工時計算機
時間差計算機
時間差計算機
打卡工時計算
打卡工時計算
金融與經濟計算工具
複利計算
複利計算
單利計算
單利計算
利息計算
利息計算
財務計算機 TVM
財務計算機 TVM
現值計算
現值計算
未來值計算
未來值計算
ROI 計算機
ROI 計算機
IRR 計算機
IRR 計算機
回收期間計算
回收期間計算
平均報酬率計算
平均報酬率計算
GDP 計算機
GDP 計算機
網路行銷與廣告指標計算工具
CTR 點擊率計算
CTR 點擊率計算
CVR 轉換率計算
CVR 轉換率計算
CPC、CPM、CPA 計算
CPC、CPM、CPA 計算
ROAS 計算
ROAS 計算
損益平衡 CPA
損益平衡 CPA
LTV 顧客終身價值
LTV 顧客終身價值
CAC 顧客取得成本
CAC 顧客取得成本
流失率計算
流失率計算
A/B 測試顯著性
A/B 測試顯著性
A/B 測試樣本數
A/B 測試樣本數
SEO 流量預估
SEO 流量預估
損益平衡點計算
損益平衡點計算
成本率毛利率換算
成本率毛利率換算
CAGR 計算機
CAGR 計算機
健康與健身計算工具
BMI 計算機
BMI 計算機
睡眠週期計算
睡眠週期計算
熱量計算機
熱量計算機
BMR 計算機
BMR 計算機
TDEE 計算機
TDEE 計算機
理想體重計算機
理想體重計算機
體脂率計算機
體脂率計算機
去脂體重計算機
去脂體重計算機
消耗熱量計算機
消耗熱量計算機
蛋白質計算機
蛋白質計算機
三大營養素計算
三大營養素計算
碳水攝取量計算
碳水攝取量計算
脂肪攝取量計算
脂肪攝取量計算
孩子身高預測
孩子身高預測
運動計算工具
高爾夫差點計算
高爾夫差點計算
配速計算機
配速計算機
1RM 計算機
1RM 計算機
目標心跳率計算
目標心跳率計算
氣象計算工具
體感溫度計算
體感溫度計算
風寒效應計算
風寒效應計算
露點溫度計算
露點溫度計算
電腦計算工具
進位轉換
進位轉換
子網路計算機
子網路計算機
下載時間計算
下載時間計算
家計與水電瓦斯費計算工具
家電電費計算
家電電費計算
度數算電費/反推
度數算電費/反推
年耗電量算電費
年耗電量算電費
冷氣坪數計算
冷氣坪數計算
冷氣電費計算
冷氣電費計算
暖氣電費比較
暖氣電費比較
瓦斯與電費比較
瓦斯與電費比較
換 LED 省多少
換 LED 省多少
薪資換算
薪資換算
家庭收支計算
家庭收支計算
汽車計算工具
油錢計算
油錢計算
電動車充電費用
電動車充電費用
電動車 vs 油車
電動車 vs 油車
油耗計算
油耗計算
輪胎尺寸計算
輪胎尺寸計算
太陽能發電與儲能計算工具
太陽能發電量
太陽能發電量
太陽能板片數
太陽能板片數
太陽能回本年限
太陽能回本年限
儲能電池容量試算
儲能電池容量試算
居家與 DIY計算工具
磁磚數量計算
磁磚數量計算
樓梯尺寸計算
樓梯尺寸計算
混凝土用量計算
混凝土用量計算
房間牆面積計算
房間牆面積計算
壁紙用量計算
壁紙用量計算
油漆用量計算
油漆用量計算
木地板片數計算
木地板片數計算
外牆面積計算
外牆面積計算
碎石用量計算
碎石用量計算
水泥砂漿配比
水泥砂漿配比
坡度計算
坡度計算
木材裁切計算
木材裁切計算
建蔽率、容積率
建蔽率、容積率
地板捲材用量
地板捲材用量
隔熱材用量計算
隔熱材用量計算
窗簾尺寸計算
窗簾尺寸計算
電視尺寸與距離
電視尺寸與距離
培養土用量計算
培養土用量計算
草皮用量計算
草皮用量計算
空心磚數量計算
空心磚數量計算
紅磚數量計算
紅磚數量計算
木棧板材料計算
木棧板材料計算
坡道長度計算
坡道長度計算
螺絲導孔與長度
螺絲導孔與長度
換氣量計算
換氣量計算
油漆稀釋計算
油漆稀釋計算
踢腳板長度計算
踢腳板長度計算
百葉窗捲簾尺寸
百葉窗捲簾尺寸
掛畫高度與位置
掛畫高度與位置
排水坡度與高低差
排水坡度與高低差
螺絲數量計算
螺絲數量計算
木材才數計算
木材才數計算
圍籬材料計算
圍籬材料計算
木材收縮計算
木材收縮計算
矽利康用量計算
矽利康用量計算
房間熱損失計算
房間熱損失計算
家具搬入計算
家具搬入計算
搬家紙箱數量
搬家紙箱數量
收納容量計算
收納容量計算
板材裁切計算
板材裁切計算
層板承重計算
層板承重計算

經緯度兩地距離計算機(十進位、度分秒都可以)

輸入兩地的緯度、經度,就會以公里和英里計算沿地球表面的兩地距離。輸入格式可以在十進位和度分秒(DMS)之間切換。

請在所有欄位輸入半形數字。十進位格式中,南緯、西經請輸入負數(例如西經 77.0366° → −77.0366)。度分秒格式請從下拉選單選擇北緯或南緯、東經或西經。
計算結果
在左邊的輸入欄填入兩地的緯度、經度,按下「計算」,結果就會顯示在這裡。

這個頁面可以做什麼

  • 只要輸入兩地的緯度、經度,就能當場知道沿著地球表面的兩地距離(公里、英里)
  • 可以用十進位格式(例如 25.0478)或度分秒(DMS)格式(例如 25°2′52.08″)輸入,用選項按鈕切換
  • 用把地球近似成旋轉橢球體(稍微扁平的球)的蘭伯特公式計算,比把地球當成完美球體的半正矢公式更接近真實的地球
  • 淺顯易懂的公式解說,以及可直接複製到 Excel、Google 試算表、Python 的公式,也都整理在這個頁面
求出的是沿地球表面的最短路徑(測地線)的大約長度,不是沿著道路或鐵路的移動距離。十進位格式中,南緯、西經請輸入負數。

這個計算有什麼用?

飛機的航線與里程(航空)

飛機會沿著接近地球曲面上最短路徑(大圓航線)的路線飛行,所以城市之間的飛行距離,是用本頁這種「沿地球表面的距離」來估算(台北到倫敦約 9,800 km,約 6,090 英里)。航空公司里程累積的區間距離,也是以這種距離為基礎。
「在平面地圖上看起來繞遠路,為什麼台灣飛美國東岸的班機要經過阿拉斯加附近?」算一算這個距離就能明白。

手機的定位服務(搜尋「附近的店」)

地圖 App 或外送 App 的「依距離排序」,是由您的所在位置和店家的緯度、經度算出兩地距離再排序。在程式設計中,球面近似的半正矢公式是這類用途的標準作法;需要更高精確度時,會用本頁蘭伯特公式這類橢球體的公式。
在每天使用的 App 背後,正大量計算著這種公式。

跑步、登山 App 的 GPS 距離量測(運動)

GPS 手錶或跑步 App 的里程,是把每隔幾秒記錄的定位點之間的距離用這類公式算出,再全部加起來。每一段雖然只有幾十公尺,但緯度、經度→距離的換算重複了幾千次,才會顯示「今天跑了 10.2 km」。

船舶的航行計畫與海里(航運、物流)

航海時用海里(1 海里 = 1.852 km,大約是緯度 1 分的長度)量距離,從出發港到目的港的航程,是以沿地球曲面的距離來規劃。抵達時間和燃料的估算,都從這個距離計算開始。
運送世界大部分貿易貨物的海運,就是靠經緯度的距離計算支撐著。

地震報告的「位於○○南方 XX 公里」(防災)

中央氣象署地震報告中「震央位於花蓮縣政府南方 XX 公里」這樣的寫法,就是由震央(震源正上方的地表點)的緯度、經度和各地或測站的經緯度,用和本頁相同的想法算出的距離。
用數字掌握自家離活動斷層、過去震央有多遠,是做好防災準備的第一步。

公式

兩地之間的圓心角 \(c\)(蘭伯特公式前半)
數學寫法 (一般的數學式)
\(U\) \(=\) \(\arctan\bigl((1 - f)\tan \varphi\bigr)\)
\(c\) \(=\) \(2\arcsin\sqrt{\sin^2\!\frac{U_2 - U_1}{2} + \cos U_1 \cos U_2 \sin^2\!\frac{\lambda_2 - \lambda_1}{2}}\)
文字寫法 (把符號換成文字的公式)
② 歸化緯度 \(U\) \(=\) ① 把緯度 \(\varphi\) 依扁率 \(f\) 縮小後的角度
④ 兩地之間的圓心角 \(c\) \(=\) ③ 由歸化緯度的差與經度的差算出的角度
用文字讀公式
① 把緯度 \(\varphi\) 依扁率 \(f\) 縮小後的角度 \(\arctan((1-f)\tan\varphi)\) 對兩地分別計算,求出
② 歸化緯度 \(U\) (\(U_1\)、\(U_2\))。接著計算
③ 由歸化緯度的差 \(U_2 - U_1\) 與經度的差 \(\lambda_2 - \lambda_1\) 算出的角度 ,就得到
④ 兩地之間的圓心角 \(c\) (從地球中心看兩地時張開的角度)
簡單範例
台北(北緯 25.0478°、東經 121.5170°)和高雄(北緯 22.6394°、東經 120.3025°)的圓心角是
圓心角 \(c\) \(=\) 由台北和高雄的歸化緯度差、經度差算出的角度
\(U_1 = \arctan\bigl((1 - \tfrac{1}{298.257})\tan 25.0478^\circ\bigr) \approx 24.9741^\circ, \quad U_2 \approx 22.5711^\circ\)
\(c = 2\arcsin\sqrt{0.00053369} \approx 0.046207 \ \mathrm{rad} \ (\approx 2.6475^\circ)\)
思考重點
地球不是完美的球體,赤道半徑約 6,378 km、極半徑約 6,357 km,南北方向大約扁了 1/300,這種形狀叫做旋轉橢球體。表示扁平程度的扁率是 \(f = \dfrac{1}{298.257}\),如果把緯度直接代入球面的公式,結果就會偏差這麼多。所以先把每個緯度換算成歸化緯度 \(U\)(為了能把橢球體當成球體處理而調整過的緯度),再用球面上兩點圓心角的標準公式(半正矢型的公式)計算。 另外,用程式計算時寫成 \(c = 2\,\mathrm{atan2}(\sqrt{a},\ \sqrt{1-a})\)(\(a\) 是根號裡的式子),可以算出和 \(2\arcsin\sqrt{a}\) 相同的值,而且數值上更穩定(本頁的計算機也是用這個寫法)。
橢球體的修正與距離 \(d\)(蘭伯特公式後半)
數學寫法 (一般的數學式)
\(d\) \(=\) \(6378.1\) \(\times\) \(\bigl(\) \(c\) \(-\) \(\frac{f(X + Y)}{2}\) \(\bigr)\)
文字寫法 (把符號換成文字的公式)
④ 兩地距離 \(d\) \(=\) ③ 赤道半徑 6378.1 km \(\times\) \(\bigl(\) ① 圓心角 \(c\) \(-\) ② 扁平的修正 \(f(X+Y) \div 2\) \(\bigr)\)
用文字讀公式
① 圓心角 \(c\)(弧度) 減去
② 扁平的修正 \(f(X+Y) \div 2\)(\(X\)、\(Y\) 是修正用的中間量) ,再乘以
③ 赤道半徑 6378.1 km ,就得到
④ 兩地距離 \(d\) (單位是 km)
簡單範例
台北和高雄(圓心角 c ≈ 0.046207 rad)的情形是
距離 \(d\) \(=\) 赤道半徑(6378.1 km) \(\times\) \(\bigl(\) 圓心角(0.046207 rad) \(-\) 扁平的修正(約 0.0001069) \(\bigr)\)
\(X \approx 0.0000027, \quad Y \approx 0.063751, \quad \frac{f(X + Y)}{2} \approx 0.0001069\)
\(d = 6378.1 \times (0.046207 - 0.0001069) \approx 294.0 \ \mathrm{km}\)
思考重點
基礎是扇形「弧長 = 半徑 × 圓心角(弧度)」的關係。只算 \(6378.1 \times c\) 的話,是把地球當成半徑等於赤道半徑的球體所得的弧長,台北到高雄約 294.72 km。再用 \(\dfrac{f(X+Y)}{2}\) 修正橢球體扁平的部分(台北到高雄約縮短 0.68 km,變成 294.03 km)。 修正用中間量 \(X\)、\(Y\) 的正確定義是 \(X = \dfrac{(c - \sin c)\sin^2 P \cos^2 Q}{\cos^2(c/2)}\)、\(Y = \dfrac{(c + \sin c)\sin^2 Q \cos^2 P}{\sin^2(c/2)}\)(其中 \(P = \dfrac{U_1 + U_2}{2}\),\(Q = \dfrac{U_2 - U_1}{2}\))。看起來很複雜,但都能由式 1 求出的歸化緯度和圓心角一步步算出來。一般認為這個蘭伯特公式即使用在數千公里的距離,誤差也大約只有 10 m。
度分秒(DMS)換算成十進位
數學寫法 (一般的數學式)
\(D\) \(=\) \(d\) \(+\) \(\frac{m}{60}\) \(+\) \(\frac{s}{3600}\)
文字寫法 (把符號換成文字的公式)
④ 十進位的角度 \(D\) \(=\) ① 度 \(d\) \(+\) ② 分 \(m \div 60\) \(+\) ③ 秒 \(s \div 3600\)
用文字讀公式
① 度 \(d\) 加上
② 分 \(m\) 除以 60 的值 和
③ 秒 \(s\) 除以 3600 的值 ,就得到
④ 十進位的角度 \(D\) (南緯、西經時最後要加上負號)
簡單範例
把台北車站附近的緯度「北緯 25 度 2 分 52.08 秒」換算成十進位
十進位的角度 \(D\) \(=\) 度(25) \(+\) 分(2)÷ 60 \(+\) 秒(52.08)÷ 3600
\(25 + \frac{2}{60} + \frac{52.08}{3600} = 25 + 0.033333\ldots + 0.014466\ldots \approx 25.0478\)
思考重點
度、分、秒和時間的「時、分、秒」一樣是六十進位。1 度 = 60 分、1 分 = 60 秒(也就是 1 度 = 3600 秒),所以分要除以 60、秒要除以 3600 換算成度。 南緯、西經時,要在換算後的整個值前面加上負號(例如西經 77°2′11.76″ → −77.0366°)。本計算機的十進位格式請輸入這個帶負號的值;度分秒格式只要從下拉選單選擇「南緯」「西經」,就是同樣的處理。
經緯度的距離是「把地球看成稍微扁平的旋轉橢球體,求出兩地之間的圓心角,再在弧長=半徑×圓心角中加入扁平的修正」,這就是蘭伯特公式。度分秒和時間一樣是六十進位,用分÷60、秒÷3600 就能換算成十進位的度。

符號與用語解說

符號

\(\varphi\) phi 緯度:以赤道為 0°,表示往南北方向離多遠的角度。北緯為正,南緯為負(−90°~90°)。
\(\lambda\) lambda 經度:以通過英國舊格林威治天文台的本初子午線為 0°,表示東西方向位置的角度。東經為正,西經為負(−180°~180°)。
\(f\) f 地球的扁率:表示旋轉橢球體扁平程度的比例,本計算使用 \(f = \dfrac{1}{298.257}\)。
\(U\) U 歸化緯度:為了能用球面的公式處理,用 \(U = \arctan((1-f)\tan\varphi)\) 把橢球體上的緯度重新換算後的緯度。
\(c\) c 圓心角:從地球中心看兩地時張開的角度(弧度)。透過「弧長=半徑×圓心角」,成為距離的基礎。
\(X\), \(Y\) X、Y 用來修正橢球體扁平部分的中間量,由圓心角 \(c\)、歸化緯度的平均 \(P = \dfrac{U_1+U_2}{2}\) 和差的一半 \(Q = \dfrac{U_2-U_1}{2}\) 計算。
\(d\) d 兩地距離,取自 distance(距離)的字首。本頁以公里(km)和英里顯示。
° ′ ″ 度、分、秒 角度的度、分、秒的符號。1° = 60′,1′ = 60″。例如 25°2′52.08″(25 度 2 分 52.08 秒)。

用語

緯度 以赤道為 0 度,表示南北方向位置的角度。北極是北緯 90 度,南極是南緯 90 度。是地圖和定位資訊的基本概念,在國中的地理課學習。
經度 以本初子午線(通過英國格林威治的線)為 0 度,表示東西方向位置的角度。東經、西經各到 180 度為止,台灣本島大約在東經 120~122 度。
度分秒 用度、分、秒的六十進位表示角度的寫法(DMS 格式)。1 度=60 分,1 分=60 秒。常用在地形圖、航海圖和 GPS 裝置上。
旋轉橢球體 把橢圓繞著軸旋轉所得的立體。地球因為自轉的離心力而在赤道方向鼓起,所以不是用球體,而是用旋轉橢球體來近似。
扁率 表示旋轉橢球體扁平程度的比例,定義為(赤道半徑 − 極半徑)÷ 赤道半徑,地球約為 1/300。
歸化緯度 把橢球體上的點,重新對應到作為該橢圓基礎的輔助圓(球)上時的緯度。用 \(U = \arctan((1-f)\tan\varphi)\) 求出,用在測地學(測量地球形狀的學問)中,也叫參數緯度。
圓心角 從圓或球的中心看兩點時張開的角度。扇形「弧長=半徑×圓心角(弧度)」的關係,是本頁距離計算的基礎。
測地線 曲面上連接兩點的最短路徑。在地球表面接近「大圓航線」,飛機的航線大致是這個形狀。本頁求的是沿著測地線的大約長度。
半正矢公式 把地球當成完美球體來求兩地距離的著名公式(haversine formula)。本頁的蘭伯特公式是針對橢球體改良的版本,第一步求圓心角時也用了半正矢型的公式。
蘭伯特公式 把地球近似成旋轉橢球體來求兩地距離的方法(Lambert's formula)。一般認為即使數千公里的距離,誤差也只有大約 10 m,比球面近似更精確。
英里 主要在美國、英國使用的距離單位(法定英里,也叫哩)。1 英里 = 約 1.609 km(國際定義為 1.609344 km),本計算機以 1 英里 = 1.60935 km 換算。和下面的海里是不同的單位。
海里 航海和航空使用的距離單位(nautical mile,也叫浬)。1 海里 = 1.852 km,訂定時讓它大約等於地球緯度 1 分(1 度的 1/60)的長度。

建議先了解的基礎知識

為了讓您「理解意義」地使用本頁的計算,這裡整理了事先了解會更好懂的基礎知識。
只是要求距離的話,看得懂緯度、經度就夠了。想了解公式內容的話,要回溯到三角函數和弧度。

緯度與經度(國中七年級地理,12~13 歲)
  • 知道緯度是「離赤道往南北多遠的角度」,經度是「離本初子午線往東西多遠的角度」
  • 分得清北緯和南緯、東經和西經(台灣本島大約在北緯 22~25 度、東經 120~122 度)
角度與六十進位(國小三~四年級,8~10 歲)
  • 知道 1 度 = 60 分、1 分 = 60 秒,和時間一樣是六十進位的關係
  • 會把分、秒換算成度的小數,例如「30 分是 0.5 度」
扇形的弧長(國小六年級~國中九年級,11~15 歲)
  • 知道弧長「與半徑和圓心角成正比」(這是式 2「半徑×圓心角」的基礎)
三角比 sin、cos、tan(高中一年級,15~16 歲)
  • 知道 sin、cos、tan 是「由角度決定的值」(只有想了解公式內容時才需要,只用計算機的話不需要)
弧度(高中二年級,16~17 歲)
  • 知道弧度是角度的另一種單位:在半徑 1 的圓上,弧長就直接等於角度。「弧長 = 半徑 × 圓心角」只有在用弧度時才成立
地球的形狀(國中自然科學、高中地球科學)
  • 知道地球不是完美的球體,而是因為自轉的影響,在赤道方向稍微鼓起的旋轉橢球體

用 Excel 計算的方法

把下方表格整個複製,貼到 Excel 的 A1 儲存格就能直接使用。
「度分秒→十進位」換算表
度 25
分 2
秒 52.08
十進位的角度(南緯、西經加上 −) =B1+B2/60+B3/3600
用「蘭伯特公式求距離」的表格
點 1 的緯度(十進位,南緯為 −) 25.0478
點 1 的經度(十進位,西經為 −) 121.5170
點 2 的緯度 22.6394
點 2 的經度 120.3025
扁率 f =1/298.257
歸化緯度 U1 =ATAN((1-B5)*TAN(RADIANS(B1)))
歸化緯度 U2 =ATAN((1-B5)*TAN(RADIANS(B3)))
經度差 Δλ(弧度) =RADIANS(B4-B2)
半正矢型的根號內 a =SIN((B7-B6)/2)^2+COS(B6)*COS(B7)*SIN(B8/2)^2
圓心角 c(弧度) =2*ATAN2(SQRT(1-B9),SQRT(B9))
平均 P =(B6+B7)/2
差的一半 Q =(B7-B6)/2
修正用中間量 X =(B10-SIN(B10))*SIN(B11)^2*COS(B12)^2/COS(B10/2)^2
修正用中間量 Y =(B10+SIN(B10))*SIN(B12)^2*COS(B11)^2/SIN(B10/2)^2
距離(公里) =6378.1*(B10-B5*(B13+B14)/2)
距離(英里) =B15/1.60935
第一個表格是度分秒→十進位的換算,B4 會顯示 25.0478。
第二個表格是蘭伯特公式的完整步驟。B1~B4 是輸入(十進位),B6 以後是式 1、式 2 的中間量,B15 是以公里表示的距離(約 294.03),B16 是以英里表示的距離(約 182.70)。本頁的計算機會把它們四捨五入成 294.0 km、182.7 英里。
RADIANS(…) 是把度換成弧度的函數。Excel 的 ATAN2(x, y) 參數順序是(x 坐標,y 坐標),所以要注意 c 寫成 2×ATAN2(√(1−a), √a)。

用 Google 試算表計算的方法

把下方表格整個複製,貼到 Google 試算表的 A1 儲存格就能直接使用。
「度分秒→十進位」換算表
度 25
分 2
秒 52.08
十進位的角度(南緯、西經加上 −) =B1+B2/60+B3/3600
用「蘭伯特公式求距離」的表格
點 1 的緯度(十進位,南緯為 −) 25.0478
點 1 的經度(十進位,西經為 −) 121.5170
點 2 的緯度 22.6394
點 2 的經度 120.3025
扁率 f =1/298.257
歸化緯度 U1 =ATAN((1-B5)*TAN(RADIANS(B1)))
歸化緯度 U2 =ATAN((1-B5)*TAN(RADIANS(B3)))
經度差 Δλ(弧度) =RADIANS(B4-B2)
半正矢型的根號內 a =SIN((B7-B6)/2)^2+COS(B6)*COS(B7)*SIN(B8/2)^2
圓心角 c(弧度) =2*ATAN2(SQRT(1-B9),SQRT(B9))
平均 P =(B6+B7)/2
差的一半 Q =(B7-B6)/2
修正用中間量 X =(B10-SIN(B10))*SIN(B11)^2*COS(B12)^2/COS(B10/2)^2
修正用中間量 Y =(B10+SIN(B10))*SIN(B12)^2*COS(B11)^2/SIN(B10/2)^2
距離(公里) =6378.1*(B10-B5*(B13+B14)/2)
距離(英里) =B15/1.60935
和 Excel 相同的公式(RADIANS、ATAN2、SQRT 等)在 Google 試算表也能直接使用。把表格整個複製貼到 A1 儲存格,再把 B1~B4 改成您自己的緯度、經度即可。

用 Python 計算的方法

import math

# 兩地的緯度、經度(十進位;南緯、西經為負)
lat1, lon1 = 25.0478, 121.5170   # 點 1(台北車站附近)
lat2, lon2 = 22.6394, 120.3025   # 點 2(高雄車站附近)

flattening = 1 / 298.257         # 地球的扁率 f
equator_radius_km = 6378.1       # 赤道半徑(km)

# 式 1 前半:歸化緯度(依扁率縮小後的緯度)
u1 = math.atan((1 - flattening) * math.tan(math.radians(lat1)))
u2 = math.atan((1 - flattening) * math.tan(math.radians(lat2)))
delta_lon = math.radians(lon2 - lon1)

# 式 1 後半:用半正矢型的公式求兩地之間的圓心角 c
a = math.sin((u2 - u1) / 2) ** 2 + math.cos(u1) * math.cos(u2) * math.sin(delta_lon / 2) ** 2
central_angle = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a))

# 式 2:加入橢球體扁平部分的修正(X、Y)求距離
p = (u1 + u2) / 2
q = (u2 - u1) / 2
x = (central_angle - math.sin(central_angle)) * math.sin(p) ** 2 * math.cos(q) ** 2 / math.cos(central_angle / 2) ** 2
y = (central_angle + math.sin(central_angle)) * math.sin(q) ** 2 * math.cos(p) ** 2 / math.sin(central_angle / 2) ** 2

distance_km = equator_radius_km * (central_angle - flattening * (x + y) / 2)
distance_mile = distance_km / 1.60935

print(f"兩地距離:{distance_km:.1f} km({distance_mile:.1f} 英里)")
只用標準函式庫就能執行。請改寫開頭的緯度、經度後執行(度分秒請先用「度 + 分÷60 + 秒÷3600」換算成十進位再輸入)。另外,兩地輸入完全相同的坐標時,會變成除以 0 而出現錯誤。

用 LaTeX 等數學式語言的寫法(可直接複製)

兩地之間的圓心角 \(c\)(蘭伯特公式前半)
U₁ = atan((1 − f)·tanφ₁), U₂ = atan((1 − f)·tanφ₂), c = 2·asin(√(sin²((U₂ − U₁)/2) + cosU₁·cosU₂·sin²((λ₂ − λ₁)/2)))
U_1 = \arctan\bigl((1-f)\tan\varphi_1\bigr),\ U_2 = \arctan\bigl((1-f)\tan\varphi_2\bigr),\quad c = 2\arcsin\sqrt{\sin^2\frac{U_2-U_1}{2} + \cos U_1 \cos U_2 \sin^2\frac{\lambda_2-\lambda_1}{2}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>U</mi><mi>i</mi></msub>
    <mo>=</mo>
    <mi>arctan</mi>
    <mo>&#x2061;</mo>
    <mrow>
      <mo>(</mo>
      <mrow><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><mi>f</mi><mo>)</mo></mrow>
      <mi>tan</mi><mo>&#x2061;</mo><msub><mi>&#x3C6;</mi><mi>i</mi></msub>
      <mo>)</mo>
    </mrow>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>c</mi>
    <mo>=</mo>
    <mn>2</mn>
    <mi>arcsin</mi>
    <mo>&#x2061;</mo>
    <msqrt>
      <mrow>
        <msup><mi>sin</mi><mn>2</mn></msup>
        <mo>&#x2061;</mo>
        <mfrac>
          <mrow><msub><mi>U</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>U</mi><mn>1</mn></msub></mrow>
          <mn>2</mn>
        </mfrac>
        <mo>+</mo>
        <mi>cos</mi><mo>&#x2061;</mo><msub><mi>U</mi><mn>1</mn></msub>
        <mi>cos</mi><mo>&#x2061;</mo><msub><mi>U</mi><mn>2</mn></msub>
        <msup><mi>sin</mi><mn>2</mn></msup>
        <mo>&#x2061;</mo>
        <mfrac>
          <mrow><msub><mi>&#x3BB;</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>&#x3BB;</mi><mn>1</mn></msub></mrow>
          <mn>2</mn>
        </mfrac>
      </mrow>
    </msqrt>
  </mrow>
</math>
U_1 = arctan((1-f) tan(varphi_1)), U_2 = arctan((1-f) tan(varphi_2)), c = 2 arcsin(sqrt(sin^2((U_2-U_1)/2) + cos(U_1) cos(U_2) sin^2((lambda_2-lambda_1)/2)))
u1 = ArcTan[(1 - f) Tan[phi1]]; u2 = ArcTan[(1 - f) Tan[phi2]]; c = 2 ArcSin[Sqrt[Sin[(u2 - u1)/2]^2 + Cos[u1] Cos[u2] Sin[(lambda2 - lambda1)/2]^2]]
U1 := arctan((1 - f)*tan(phi1)); U2 := arctan((1 - f)*tan(phi2)); c := 2*arcsin(sqrt(sin((U2 - U1)/2)^2 + cos(U1)*cos(U2)*sin((lambda2 - lambda1)/2)^2));
u1 = atan((1 - f)*tan(phi1)); u2 = atan((1 - f)*tan(phi2)); c = 2*asin(sqrt(sin((u2 - u1)/2)^2 + cos(u1)*cos(u2)*sin((lambda2 - lambda1)/2)^2));
U_1 = atan((1 - f) tan(φ_1)), U_2 = atan((1 - f) tan(φ_2)), c = 2 asin(√(sin^2((U_2 - U_1)/2) + cos(U_1) cos(U_2) sin^2((λ_2 - λ_1)/2)))
橢球體的修正與距離 \(d\)(蘭伯特公式後半)
d = 6378.1·(c − f·(X + Y)/2), X = (c − sin c)·sin²P·cos²Q ÷ cos²(c/2), Y = (c + sin c)·sin²Q·cos²P ÷ sin²(c/2), P = (U₁ + U₂)/2, Q = (U₂ − U₁)/2
d = 6378.1\left(c - \frac{f(X + Y)}{2}\right),\quad X = \frac{(c - \sin c)\sin^2 P \cos^2 Q}{\cos^2(c/2)},\quad Y = \frac{(c + \sin c)\sin^2 Q \cos^2 P}{\sin^2(c/2)},\quad P = \frac{U_1 + U_2}{2},\ Q = \frac{U_2 - U_1}{2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>d</mi>
    <mo>=</mo>
    <mn>6378.1</mn>
    <mrow>
      <mo>(</mo>
      <mi>c</mi>
      <mo>&#x2212;</mo>
      <mfrac>
        <mrow><mi>f</mi><mo>(</mo><mi>X</mi><mo>+</mo><mi>Y</mi><mo>)</mo></mrow>
        <mn>2</mn>
      </mfrac>
      <mo>)</mo>
    </mrow>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>X</mi>
    <mo>=</mo>
    <mfrac>
      <mrow>
        <mo>(</mo><mi>c</mi><mo>&#x2212;</mo><mi>sin</mi><mo>&#x2061;</mo><mi>c</mi><mo>)</mo>
        <msup><mi>sin</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>P</mi>
        <msup><mi>cos</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>Q</mi>
      </mrow>
      <mrow><msup><mi>cos</mi><mn>2</mn></msup><mo>&#x2061;</mo><mrow><mo>(</mo><mi>c</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow></mrow>
    </mfrac>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>Y</mi>
    <mo>=</mo>
    <mfrac>
      <mrow>
        <mo>(</mo><mi>c</mi><mo>+</mo><mi>sin</mi><mo>&#x2061;</mo><mi>c</mi><mo>)</mo>
        <msup><mi>sin</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>Q</mi>
        <msup><mi>cos</mi><mn>2</mn></msup><mo>&#x2061;</mo><mi>P</mi>
      </mrow>
      <mrow><msup><mi>sin</mi><mn>2</mn></msup><mo>&#x2061;</mo><mrow><mo>(</mo><mi>c</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow></mrow>
    </mfrac>
    <mo>,</mo>
    <mspace width="1em"/>
    <mi>P</mi>
    <mo>=</mo>
    <mfrac><mrow><msub><mi>U</mi><mn>1</mn></msub><mo>+</mo><msub><mi>U</mi><mn>2</mn></msub></mrow><mn>2</mn></mfrac>
    <mo>,</mo>
    <mi>Q</mi>
    <mo>=</mo>
    <mfrac><mrow><msub><mi>U</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>U</mi><mn>1</mn></msub></mrow><mn>2</mn></mfrac>
  </mrow>
</math>
d = 6378.1 (c - f(X + Y)/2), X = ((c - sin c) sin^2(P) cos^2(Q))/(cos^2(c/2)), Y = ((c + sin c) sin^2(Q) cos^2(P))/(sin^2(c/2)), P = (U_1 + U_2)/2, Q = (U_2 - U_1)/2
p = (u1 + u2)/2; q = (u2 - u1)/2; x = (c - Sin[c]) Sin[p]^2 Cos[q]^2/Cos[c/2]^2; y = (c + Sin[c]) Sin[q]^2 Cos[p]^2/Sin[c/2]^2; d = 6378.1 (c - f (x + y)/2)
P := (U1 + U2)/2; Q := (U2 - U1)/2; X := (c - sin(c))*sin(P)^2*cos(Q)^2/cos(c/2)^2; Y := (c + sin(c))*sin(Q)^2*cos(P)^2/sin(c/2)^2; d := 6378.1*(c - f*(X + Y)/2);
p = (u1 + u2)/2; q = (u2 - u1)/2; x = (c - sin(c))*sin(p)^2*cos(q)^2/cos(c/2)^2; y = (c + sin(c))*sin(q)^2*cos(p)^2/sin(c/2)^2; d = 6378.1*(c - f*(x + y)/2);
d = 6378.1(c - f(X + Y)/2), X = (c - sin c) sin^2(P) cos^2(Q)/cos^2(c/2), Y = (c + sin c) sin^2(Q) cos^2(P)/sin^2(c/2), P = (U_1 + U_2)/2, Q = (U_2 - U_1)/2
度分秒(DMS)換算成十進位
D = d + m/60 + s/3600
D = d + \frac{m}{60} + \frac{s}{3600}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>D</mi>
    <mo>=</mo>
    <mi>d</mi>
    <mo>+</mo>
    <mfrac><mi>m</mi><mn>60</mn></mfrac>
    <mo>+</mo>
    <mfrac><mi>s</mi><mn>3600</mn></mfrac>
  </mrow>
</math>
D = d + m/60 + s/3600
d + m/60 + s/3600
deg := d + m/60 + s/3600;  # D (the differential operator) is reserved in Maple, so the decimal degrees are named deg
D = d + m/60 + s/3600;
D = d + m/60 + s/3600

請 ChatGPT  幫忙計算的方法

你是地理計算的助理。請務必實際執行 Python 程式碼來進行以下計算,並且只根據執行結果的數值回答(不要用心算或推測回答)。

請用把地球近似成扁率 f = 1/298.257 的旋轉橢球體的蘭伯特公式(Lambert's formula),由兩地的緯度、經度求出距離。
步驟:把各緯度換算成歸化緯度 U = atan((1-f)·tanφ);a = sin²((U2-U1)/2) + cosU1·cosU2·sin²((λ2-λ1)/2);圓心角 c = 2·atan2(√a, √(1-a));P = (U1+U2)/2;Q = (U2-U1)/2;X = (c-sin c)·sin²P·cos²Q/cos²(c/2);Y = (c+sin c)·sin²Q·cos²P/sin²(c/2);距離(km)= 6378.1·(c - f·(X+Y)/2)。

點 1:北緯 25.0478°、東經 121.5170°(台北車站附近)
點 2:北緯 22.6394°、東經 120.3025°(高雄車站附近)

請以 km 和英里(1 英里 = 1.60935 km)表示距離,並列出使用的程式碼和執行結果的數值。

使用方法
  1. 1
    輸入數值
    在輸入欄中輸入要計算的數值
  2. 2
    計算
    按下「計算」按鈕
  3. 3
    查看結果
    計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
  DataChef 的特色
簡單又免費
免費且無使用次數限制
不需專業知識,操作直覺又簡單
免註冊會員
開啟頁面即可立即使用
無須登錄任何個人資料
安全又安心
通訊全程高度加密
按下「下載」後自動刪除檔案
高速
顯示與轉換都快速順暢,毫無等待壓力
無浮水印
沒有浮水印
無須標註來源出處
可商業使用
可免費用於商業用途
亦無須事先取得商用授權