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与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
-
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.
-
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
-
Go语言计算指定年月天数的方法
本文实例讲述了Go语言计算指定年月天数的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "fmt" "bufio" "os" "regexp" "strconv" ) func main() { year := input("year", "^[0-9]{1}[0-
-
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
-
golang实现http服务器处理静态文件示例
本文实例讲述了golang实现http服务器处理静态文件的方法.分享给大家供大家参考,具体如下: 新版本更精简: 复制代码 代码如下: package main import ( "flag" "log" "net/http" "os" "io" "path" "strconv" ) var dir string
-
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
随机推荐
- AngularJs directive详解及示例代码
- 正则表达式详述 二
- AngularJS指令与指令之间的交互功能示例
- Windows2003下VPN服务器架设图文教程
- 用NODE.JS中的流编写工具是要注意的事项
- smarty中先strip_tags过滤html标签后truncate截取文章运用
- 跟老齐学Python之眼花缭乱的运算符
- 移动端html5图片上传方法【更好的兼容安卓IOS和微信】
- Docker 常用命令整理并介绍
- onclick和onblur冲突问题的快速解决方法
- JSP + ajax实现输入框自动补全功能 实例代码
- BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
- VBS教程:方法-Replace 方法
- Mongodb常见错误与解决方法小结(Mongodb中经常出现的错误)
- Linux环境中使用BIEE 连接SQLServer业务数据源
- 虚拟主机MySQL数据库的备份与还原的方法
- 微信小程序后台解密用户数据实例详解
- ASP.NET中常见文件类型、扩展名、存放位置及用途总结
- php获取字段名示例分享
- java判断用户输入的是否至少含有N位小数的实例