Go语言计算两个经度和纬度之间距离的方法

本文实例讲述了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

}

希望本文所述对大家的Go语言程序设计有所帮助。

相关推荐