經緯度互換和計算距離
經緯度互換
度(DDD):E 108.90593度 N 34.21630度
如何將度(DDD):: 108.90593度換算成度分秒(DMS)東經E 108度54分22.2秒?轉換方法是將108.90593整數位不變取108(度),用0.90593*60=54.3558,取整數位54(分),0.3558*60=21.348再取整數位21(秒),故轉化為108度54分21秒.
同樣將度分秒(DMS):東經E 108度54分22.2秒換算成度(DDD)的方法如下:108度54分22.2秒=108+(54/60)+(22.2/3600)=108.90616度
因為計算時小數位保留的原因,導致正反計算存在一定誤差,但誤差影響不是很大。1秒的誤差就是幾米的樣子。GPS車友可以用上述方法換算成自己需要的單位座標。
經緯度換算成米
緯度分為60分,每一分再分為60秒以及秒的小數。
緯度線投射在圖上看似水平的平行線,但實際上是不同半徑的圓。有相同特定緯度的所有位置都在同一個緯線上。
赤道的緯度為0°,將行星平分為南半球和北半球。
緯度是指某點與地球球心的連線和地球赤道面所成的線面角,其數值在0至90度之間。位於赤道以北的點的緯度叫北緯,記為N,位於赤道以南的點的緯度稱南緯,記為S。
緯度數值在0至30度之間的地區稱為低緯地區,緯度數值在30至60度之間的地區稱為中緯地區,緯度數值在60至90度之間的地區稱為高緯地區。
赤道、南迴歸線、北迴歸線、南極圈和北極圈是特殊的緯線。
緯度1秒的長度
地球的子午線總長度大約40008km。平均:
緯度1度 =
大約111km
緯度1分 =
大約1.85km
緯度1秒 =
大約30.9m
根據地球上任意兩點的經緯度計算兩點間的距離(可以用勾股定理c=a2+b2)
地球是一個近乎標準的橢球體,它的赤道半徑為6378.140千米,極半徑為 6356.755千米,平均半徑6371.004千米。如果我們假設地球是一個完美的球體,那麼它的半徑就是地球的平均半徑,記為R。如果以0度經線為基準,那麼根據地球表面任意兩點的經緯度就可以計算出這兩點間的地表距離(這裡忽略地球表面地形對計算帶來的誤差,僅僅是理論上的估算值)。設第一點A的經緯度為(LonA, LatA),第二點B的經緯度為(LonB,LatB),按照0度經線的基準,東經取經度的正值(Longitude),西經取經度負值(-Longitude),北緯取90-緯度值(90-Latitude),南緯取90+緯度值(90+Latitude),則經過上述處理過後的兩點被計為(MLonA,MLatA)和(MLonB,MLatB)。那麼根據三角推導,可以得到計算兩點距離的如下公式:
C= sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)
Distance= R*Arccos(C)*Pi/180
這裡,R和Distance單位是相同,如果是採用6371.004千米作為半徑,那麼Distance就是千米為單位,如果要使用其他單位,比如mile,還需要做單位換算,1千米=0.621371192mile
如果僅對經度作正負的處理,而不對緯度作90-Latitude(假設都是北半球,南半球只有澳洲具有應用意義)的處理,那麼公式將是:
C= sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)
Distance= R*Arccos(C)*Pi/180
以上通過簡單的三角變換就可以推出。
如果三角函式的輸入和輸出都採用弧度值,那麼公式還可以寫作:
C= sin(LatA*Pi/180)*sin(LatB*Pi/180) +cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)
Distance= R*Arccos(C)*Pi/180
也就是:
C= sin(LatA/57.2958)*sin(LatB/57.2958) +cos(LatA/57.2958)*cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)
Distance= R*Arccos(C) = 6371.004*Arccos(C) kilometer = 0.621371192*6371.004*Arccos(C)mile = 3958.758349716768*Arccos(C) mile
在實際應用當中,一般是通過一個個體的郵政編碼來查詢該郵政編碼對應的地區中心的經緯度,然後再根據這些經緯度來計算彼此的距離,從而估算出某些群體之間的大致距離範圍(比如酒店旅客的分佈範圍-各個旅客的郵政編碼對應的經緯度和酒店的經緯度所計算的距離範圍-等等),所以,通過郵政編碼查詢經緯度這樣一個資料庫是一個很有用的資源。
相關文章
- JAVA計算兩經緯度間的距離Java
- 透過經緯度計算距離獲取附近商家
- 通過sql 計算兩經緯度之間的距離SQL
- sql 計算兩個經緯度點之間的距離SQL
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值Java
- PHP實現透過經緯度計算距離和查附近店門PHP
- 經緯度計算兩地之間的距離(原理與方法)
- java 根據兩個位置的經緯度,來計算兩地的距離 經緯度處理Java
- 根據經緯度計算兩點之間的距離的公式公式
- 根據兩點經緯度計算距離和角度——java實現Java
- 簡單計算給定兩個給定經緯度座標的距離
- 通過經緯度計算距離實現附近、附近的人等功能
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值 2022-02-14 0Java
- 微信小程式 計算兩地之間的距離 + 高德地圖獲取經緯度 + elasticsearch微信小程式地圖Elasticsearch
- 常用經緯度轉換為ntu經緯度
- 經緯度轉換
- Elasticsearch 7.2 在 Laravel 中實踐 --經緯度及距離查詢ElasticsearchLaravel
- 使用MySQL的geometry型別處理經緯度距離問題MySql型別
- java 根據GPS經緯度座標計算兩點的直線距離的演算法Java演算法
- 米轉換經緯度
- 獲取資料庫中到指定經緯度距離的座標資料庫
- java 根據經緯度計算圓周Java
- Android常用的地球經緯度轉換公里(km)計算工具類Android
- 海量資料相似度計算之simhash和海明距離
- 空間距離計算
- 百度地圖根據經緯度計算瓦片行列號地圖
- 根據時間經緯度高程計算天頂角
- 百度地圖計算兩座標點之間距離計算地圖
- 28、(向量)歐幾里得距離計算
- RecyclerView滑動距離計算View
- 計算字串編輯距離字串
- ArcEngine下投影座標和經緯度座標的相互轉換
- PostgreSQL遺傳學應用-矩陣相似距離計算(歐式距離,…XX距離)SQL矩陣
- iOS中地圖經緯度座標轉換iOS地圖
- 曼哈頓距離與切比雪夫距離的互化
- Vijos1680距離/openjudge2988計算字串的距離[DP]字串
- ConvertLatOrLonFilter-經緯度格式轉換-保留6位Filter
- PyTorch 實戰:計算 Wasserstein 距離PyTorch