本文主要是介绍【go语言计算两个经纬度距离】根据经纬度计算两点之间距离,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、需求分析:
输入两个经纬度,计算它们之间的距离
lat1,lng1 := 32.060255,118.796877
lat2,lng2 := 39.904211,116.407395
二、计算公式
//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
三、运行效果
"D:\Program Files (x86)\JetBrains\Gogland 171.3780.106\bin\runnerw.exe" D:/Go\bin\go.exe run D:/Go/code/src/awesomeProject/EarthDistance.go
899.217935km
Process finished with exit code 0
四、实现代码
package mainimport ("fmt""math"
)//计算公式
//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/180func EarthDistance(lat1, lng1, lat2, lng2 float64) float64 {radius :=6378.137rad := math.Pi / 180.0lat1 = lat1 * radlng1 = lng1 * radlat2 = lat2 * radlng2 = lng2 * radtheta := lng2 - lng1dist := math.Acos(math.Sin(lat1)*math.Sin(lat2) + math.Cos(lat1)*math.Cos(lat2)*math.Cos(theta))return dist * radius
}func main() {lat1,lng1 := 32.060255,118.796877lat2,lng2 := 39.904211,116.407395distance:=EarthDistance(lat1, lng1, lat2, lng2)fmt.Printf("%fkm",distance)
}
这篇关于【go语言计算两个经纬度距离】根据经纬度计算两点之间距离的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!