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语言程序设计有所帮助。
相关推荐
-
golang模板template自定义函数用法示例
本文实例讲述了golang模板template自定义函数用法.分享给大家供大家参考,具体如下: golang的模板十分强大,其中的unix管道风格函数调用很是喜欢. 模板中有很多内置可以参看pkg文档, 另外还可以实现自定义函数. 例子如下: 复制代码 代码如下: package main import ( "text/template" "time" "os" ) type User struct { Usern
-
golang简单位运算示例
本文实例讲述了golang简单位运算.分享给大家供大家参考,具体如下: 复制代码 代码如下: // http://play.golang.org/p/idG7Ri_krU package main import "fmt" func main() { var n uint8 = 6 fmt.Printf("%s\n%08b\n%08b\n\n", "6<<1 左移1位", n, n<<1) fmt.
-
golang与php实现计算两个经纬度之间距离的方法
本文实例讲述了golang与php实现计算两个经纬度之间距离的方法.分享给大家供大家参考,具体如下: golang版本: 复制代码 代码如下: package main import ( "fmt" "math" ) func main() { lat1 := 29.490295 lng1 := 106.486654 lat2 := 29.615467 lng2 := 106.581515 fmt.Printl
-
Go语言计算指定年月天数的方法
本文实例讲述了Go语言计算指定年月天数的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "fmt" "bufio" "os" "regexp" "strconv" ) func main() { year := input("year", "^[0-9]{1}[0-
-
golang实现http服务器处理静态文件示例
本文实例讲述了golang实现http服务器处理静态文件的方法.分享给大家供大家参考,具体如下: 新版本更精简: 复制代码 代码如下: package main import ( "flag" "log" "net/http" "os" "io" "path" "strconv" ) var dir string
-
go语言计算两个时间的时间差方法
本文实例讲述了go语言计算两个时间的时间差方法.分享给大家供大家参考.具体分析如下: go语言计算两个时间的时间差,代码很简单,返回1天前.1周前还是1月前的时间 package main import ( "fmt" "time" ) func main() { //Add方法和Sub方法是相反的,获取t0和t1的时间距离d是使用Sub //将t0加d获取t1就是使用Add方法 k := time.Now() //一天之前 d, _ := time.ParseDu
-
golang简单tls协议用法完整示例
本文实例讲述了golang简单tls协议用法.分享给大家供大家参考,具体如下: 生成私钥: openssl genrsa -out key.pem 2048 生成证书: openssl req -new -x509 -key key.pem -out cert.pem -days 3650 https: 复制代码 代码如下: package main import ( "io" "net/http" "log" ) fun
-
golang解析xml的方法
本文实例讲述了golang解析xml的方法.分享给大家供大家参考,具体如下: golang解析xml真是好用,特别是struct属性的tag让程序简单了许多,其他变成语言需要特殊类型的在golang里直接使用tag舒服 xml文件点击此处本站下载. 完整示例代码: 复制代码 代码如下: package main import ( "os" "encoding/xml" // "encoding/json" &quo
-
golang的HTTP基本认证机制实例详解
本文实例讲述了golang的HTTP基本认证机制.分享给大家供大家参考,具体如下: 看了<<http权威指南>>第12章HTTP基本认证机制(本站下载地址:http://www.jb51.net/books/93254.html),感觉讲的蛮详细的,写了一个小小例子测试. 请求响应过程: 复制代码 代码如下: ==> GET /hello HTTP/1.1 Host: 127.0.0.1:12345 <== HTTP/1.1 401 Unauthorized WWW-A
-
Golang记录、计算函数执行耗时、运行时间的一个简单方法
先写一个公共函数, 比如在 common 包下有这么一个方法: // 写超时警告日志 通用方法 func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) { dis := time.Now().Sub(start).Seconds() if dis > timeLimit { log.Warning(log.CENTER_COMMON_WARNING, tag, " detailed:&quo
随机推荐
- Docker探索namespace详解
- div+css与xhtml+css分别是什么意思?
- 地震云图片大量组图赏析
- mysql like查询字符串示例语句
- perl数组的多数字下标示例代码
- php教程 插件机制在PHP中实现方案
- php分别做为cgi和module来运行的配置
- python随机生成指定长度密码的方法
- mysql 5.7版本修改密码的简单方法
- php实现跨域提交form表单的方法【2种方法】
- 基于RxJava实现酷炫启动页
- Android开发 Activity和Fragment详解
- “一”为什么念“夭”?
- 学习使用grunt来打包JavaScript和CSS程序的教程
- SQLServer中merge函数用法详解
- php实现执行某一操作时弹出确认、取消对话框
- Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】
- RxJava两步打造华丽的Android引导页
- 用文本作数据处理
- c/c++中变量的声明和定义深入解析