`
DarkWingBoy
  • 浏览: 47909 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

golang/php计算两个经纬度之间的距离

 
阅读更多

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与php实现计算两个经纬度之间距离的方法。分享给大家供大家参考,具体如下: golang版本: 复制代码 代码如下:package main import (  “fmt”  “math” ) func main() {  lat1 := 29....

    经纬度计算日出日落golang代码

    1,以golang语言编写的经纬度日出时刻计算代码 2,针对嵌入式设备控制,已经测试通过,误差率很小

    golang.org/x/sys/windows

    golang.org/x/sys/windows

    onvif协议像机 在线搜索 预览工具golang/QT

    onvif协议像机 在线搜索 预览工具 golang/QT

    golang.org/x

    golang.org/x 包容易被墙,所以上传上来。 使用时解压到 gopath 目录的go\src 文件夹下。

    【Golang】计算两个地理坐标之间的距离

    // GeoDistance 计算地理距离,依次为两个坐标的纬度、经度、单位(默认:英里,K =&gt; 公里,N =&gt; 海里) func GeoDistance(lng1 float64, lat1 float64, lng2 float64, lat2 float64, unit ...strin

    下载golang.org/x包的操作方法

    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....

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

    本文实例讲述了Go语言计算两个经度和纬度之间距离的方法。分享给大家供大家参考。具体实现方法如下: 代码如下:package main   import (  “fmt”  “math” )   func main() {  lat1 := 29.490295  lng1 := ...

    golang 扩展package 列表

    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微服务基础实战.rar

    分享视频教程:Go/Golang/Beego微服务基础实战视频教程,2020年最新录制,完整版400多节视频,附带源码, 本课程从Beego环境搭建开始讲解,涉及Beego知识的方方面面,最后还有企业级项目实战,让你真正能学以致用!

    golang.org/x下的包集合

    https://golang.org/x/下的相关的包国内无法下载,这个可以直接将解压后的golang.org-master/x目录下到包放到GOPATH目录下的golang.org/x路径下面,执行go install 包名称就行了

    gcc-golang-mingw64-9.0.rar

    解决C compiler "gcc" not found: exec: "gcc": executable file not found in %PATH%

    golang.org.zip

    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编程语言中的Snappy压缩格式。-Golang开发

    要从源代码下载和安装:$ go get github.com/golang/snappy除非另有说明,否则Snappy-Go源文件是根据LICENSE文件中的BSD样式许可分发的。 基准。 golang / snappy基准测试包括压缩(Z)和解压缩(U)十个左右的文件...

    go依赖包golang.org/x下的所有源码

    go语言依赖包,为不方便下载的同学,提供便利。因为经常被墙,所以直接下载这个就可以了。

    golang.org/x包

    包含GolangWeb开发所需的常用golang.org/x包内容,这个包的内容不好获取,我这一件打包方便使用。PS:解压后放到gopath的src目录下即可。

    demoinfocs-golang:高性能CS

    去弄 go get -u github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs 目录要求快速入门指南例子更多例子文档特征性能/基准版本控制使用 demoinfocs-golang 的项目发展调试测试生成接口生成 Protobuf 代码Git ...

    GoMock是用于Go编程语言的模拟框架。-Golang开发

    gomock GoMock是Go编程...要获取最新发布的版本,请使用:GO111MODULE = on go github.com/golang/mock/ [电子邮件保护]如果您在CI管道中使用模拟量,则更适合固定在特定的模拟量版本上。 文档安装后,您可以使用go d

    golang/python实现归并排序实例代码

    主要给大家介绍了关于golang/python实现归并排序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Global site tag (gtag.js) - Google Analytics