Golang計算兩個經度和緯度之間的距離

n2n3 9年前發布 | 5K 次閱讀 Golang

Go語言計算兩個經度和緯度之間的距離

package main

import ( "fmt" "math" )

func main() { lat1 := 29.490295 lng1 := 106.486654

lat2 := 29.615467
lng2 := 106.581515
fmt.Println(EarthDistance(lat1, lng1, lat2, lng2))

}

func EarthDistance(lat1, lng1, lat2, lng2 float64) float64 { radius := 6371000 // 6378137 rad := math.Pi/180.0

lat1 = lat1 * rad
lng1 = lng1 * rad
lat2 = lat2 * rad
lng2 = lng2 * rad

theta := lng2 - lng1
dist := math.Acos(math.Sin(lat1) * math.Sin(lat2) + math.Cos(lat1) * math.Cos(lat2) * math.Cos(theta))

return dist * radius

} </pre>

 本文由用戶 n2n3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!