golang版本
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 := float64(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 }
php版本
<?php // 返回值的单位为米 function pc_sphere_distance($lat1, $lon1, $lat2, $lon2, $radius = 6371000) { $rad = doubleval(M_PI/180.0); $lat1 = doubleval($lat1) * $rad; $lon1 = doubleval($lon1) * $rad; $lat2 = doubleval($lat2) * $rad; $lon2 = doubleval($lon2) * $rad; $theta = $lon2 - $lon1; $dist = acos(sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta)); return $dist * $radius * 1000; } $lat1 = 29.490295; $lon1 = 106.486654; $lat2 = 29.615467; $lon2 = 106.581515; echo pc_sphere_distance($lat1, $lon1, $lat2, $lon2);
相关推荐
在Golang和PHP这两种编程语言中,计算两个经纬度之间的距离是一项常见的任务,这通常涉及到地球表面的距离估算。以下将详细介绍这两种语言如何实现这一功能。 首先,我们来看Golang的实现。在给出的示例中,`...
通过这两个变量,我们可以确定太阳在特定时间和特定地点的地平线位置,从而推算出日出和日落的精确时刻。 这一过程通常会在Go语言的`suntime.go`文件中实现。在这个文件中,会包含获取当前日期、计算太阳位置、确定...
golang.org/x/sys/windows
// GeoDistance 计算地理距离,依次为两个坐标的纬度、经度、单位(默认:英里,K => 公里,N => 海里) func GeoDistance(lng1 float64, lat1 float64, lng2 float64, lat2 float64, unit ...strin
在IT领域,尤其是在地理信息系统(GIS)和导航系统中,计算两点之间的距离和航向角是常见的需求。这里我们主要探讨如何使用Python和Go语言来实现这个功能,并结合相关论文来深入理解这些算法。 首先,根据给定的...
在Golang生态系统中,`golang.org/x`是一个非常重要的包集合,它包含了大量由Go官方维护和贡献的扩展库。这些包覆盖了各种功能,从网络编程到文本处理,为Go开发者提供了丰富的工具和解决方案。`golang.org/x`包系列...
`golang.org/x` 是 Go 语言生态系统中的一个特殊仓库,包含了由 Go 语言官方维护但并未包含在标准库中的各种模块和工具。这个仓库包含了众多实用的第三方组件,如网络编程库、数据库驱动、文本处理工具等。由于 `...
https://golang.org/x/下的相关的包国内无法下载,这个可以直接将解压后的golang.org-master/x目录下到包放到GOPATH目录下的golang.org/x路径下面,执行go install 包名称就行了
本文实例讲述了Go语言计算两个经度和纬度之间距离的方法。分享给大家供大家参考。具体实现方法如下: 代码如下:package main import ( “fmt” “math” ) func main() { lat1 := 29.490295 lng1 := ...
要从源代码下载和安装:$ go get github.com/golang/snappy除非另有说明,否则Snappy-Go源文件是根据LICENSE文件中的BSD样式许可分发的。 基准。 golang / snappy基准测试包括压缩(Z)和解压缩(U)十个左右的文件...
golang.org/x包放到了https://github.com/golang/text中,下载时需要先在本地建立golang.org/x的目录后,再下载。 mkdir -p golang.org/x git clone https://github.com/golang/text.git 或 go get github....
https://github.com/golang/arch.git https://github.com/golang/playground.git https://github.com/golang/debug.git https://github.com/golang/term.git https://github.com/golang/time.git ...
分享视频教程:Go/Golang/Beego微服务基础实战视频教程,2020年最新录制,完整版400多节视频,附带源码, 本课程从Beego环境搭建开始讲解,涉及Beego知识的方方面面,最后还有企业级项目实战,让你真正能学以致用!
go语言 下载依赖 package golang.org/x/net/http2/hpack: unrecognized import path "golang.org/x/net/http2/hpack" ... or established connection failed because connected host has failed to respond.)
去弄 go get -u github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs 目录要求快速入门指南例子更多例子文档特征性能/基准版本控制使用 demoinfocs-golang 的项目发展调试测试生成接口生成 Protobuf 代码Git ...
gomock GoMock是Go编程...要获取最新发布的版本,请使用:GO111MODULE = on go github.com/golang/mock/ [电子邮件保护]如果您在CI管道中使用模拟量,则更适合固定在特定的模拟量版本上。 文档安装后,您可以使用go d
`golang.org/x` 是 Go 语言生态系统中的一个特殊仓库,包含了由 Go 语言官方维护但并未包含在标准库中的各种扩展包。这些包通常涵盖了网络、文本处理、数据库连接等多个领域,为开发者提供了丰富的功能扩展。由于 `...
这个开源项目可能是对官方golang/protobuf库的补充或者一个分支版本,可能包含了特定的改进、优化或者特性,以适应开发者的需求。文件名“protobuf-master”暗示这可能是项目的主分支,通常包含最新的开发和更新。 ...