[Go] Go语言计算两个经度和纬度之间的距离 →→→→→进入此内容的聊天室

来自 , 2019-02-16, 写在 Go, 查看 133 次.
URL http://www.code666.cn/view/5eb2a86c
  1. package main
  2.  
  3. import (
  4.         "fmt"
  5.         "math"
  6. )
  7.  
  8. func main() {
  9.         lat1 := 29.490295
  10.         lng1 := 106.486654
  11.  
  12.         lat2 := 29.615467
  13.         lng2 := 106.581515
  14.         fmt.Println(EarthDistance(lat1, lng1, lat2, lng2))
  15. }
  16.  
  17. func EarthDistance(lat1, lng1, lat2, lng2 float64) float64 {
  18.         var radius float64 = 6371000 // 6378137
  19.         rad := math.Pi / 180.0
  20.  
  21.         lat1 = lat1 * rad
  22.         lng1 = lng1 * rad
  23.         lat2 = lat2 * rad
  24.         lng2 = lng2 * rad
  25.  
  26.         theta := lng2 - lng1
  27.         dist := math.Acos(math.Sin(lat1)*math.Sin(lat2) + math.Cos(lat1)*math.Cos(lat2)*math.Cos(theta))
  28.         return dist * radius
  29. }
  30. //go/9043

回复 "Go语言计算两个经度和纬度之间的距离"

这儿你可以回复上面这条便签

captcha