iT邦幫忙

1

SQL 計算目前所在位置到某經緯度距離

我負責後端部分

前端會傳給我一串經緯度資料
這串資料代表我目前所在經緯度
例如:
lng:23.12345, lat:128.23456 //lng經度, lat緯度

接下來我會去資料庫撈某個地點的資料表
其中資料表中的欄位有table.lng和table.lat
代表該地點的經緯度

我想要計算目前所在經緯度到資料表中該地點的經緯度距離
同時select欄位時 另外as一個欄位叫做distance
並以公里為單位
請問該怎麼下公式

看更多先前的討論...收起先前的討論...
ch_lute iT邦新手 5 級 ‧ 2020-05-21 14:21:43 檢舉
國中數學的"點—點距離公式",想用理解的話就是在直角平面座標上點出2個點,座標(x1,y1)和(x2,y2)然後分別劃出鉛直線和水平線到X,Y軸,對長方形和三角形的邊長做計算
該死....問了蠢問題.....
看到經緯度就想多了......= =
listennn08 iT邦研究生 4 級 ‧ 2020-05-21 14:30:42 檢舉
還要考慮地球不是平面 不過短距離應該誤差不大
japhenchen iT邦研究生 5 級 ‧ 2020-05-21 15:22:08 檢舉
開平方SQR( (經度相減)^2 + (緯度相減)^2 )
靠近赤道的經度距離最大,平均每個經度111公里,靠近南北極就直接歸零,所以經度差還要乘上緯度差,網上有公式....我來亂的

https://wywu.pixnet.net/blog/post/26533759
japhenchen iT邦研究生 5 級 ‧ 2020-05-21 15:51:05 檢舉
勾股、畢氏定律..........兩股次方和開方得距離
誒誒誒~~所以不是只有兩點球直線距離這麼簡單喔...= =

1 個回答

2
通靈亡
iT邦新手 3 級 ‧ 2020-05-21 14:29:56
最佳解答

公式:
sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
φ 代表兩地點緯度相減,λ 代表兩地點經度相減
φ1 代表地點1的緯度,φ2 代表地點2的緯度

https://www.movable-type.co.uk/scripts/latlong.html

程式碼實作(14個語言應有盡有,包含SQL):
https://www.geodatasource.com/developers/mssql

我要發表回答

立即登入回答