1 Star 0 Fork 0

小于的个人工具集/xnum

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
earth_distance.go 849 Bytes
一键复制 编辑 原始数据 按行查看 历史
xiaoyutab 提交于 2023-12-15 15:01 +08:00 . 1
package xnum
import "math"
// 计算经纬度之间的距离【返回单位:m】
// 计算公式:C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)
//
// lat1 坐标点1的纬度
// lng1 坐标点1的经度
// lat1 坐标点2的纬度
// lng2 坐标点2的经度
func EarthDistance(lat1, lng1, lat2, lng2 float64) float64 {
rad := math.Pi / 180
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 * EARTH_RADIUS * 1000
}
// 计算两点的经纬度
//
// a1 坐标点a1的经纬度
// a2 坐标点a2的经纬度
func EarthDistanceGps(a1, a2 *GPS) float64 {
return EarthDistance(a1.Latitude, a1.Longitude, a2.Latitude, a2.Longitude)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/xgotool/xnum.git
git@gitee.com:xgotool/xnum.git
xgotool
xnum
xnum
master

搜索帮助