golang与php实现计算两个经纬度之间距离的方法


Posted in PHP onJuly 22, 2016

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

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

PHP 相关文章推荐
利用php来自动调用不同服务器上的flash
Oct 09 PHP
PHP中的cookie不用刷新就生效的方法
Feb 04 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
Feb 01 PHP
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
Mar 16 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
自制PHP框架之设计模式
May 07 PHP
php实现文件预览功能
May 23 PHP
PHP微信刮刮卡 附微信接口
Jul 22 #PHP
php判断用户是否关注微信公众号
Jul 22 #PHP
微信支付扫码支付php版
Jul 22 #PHP
php如何执行非缓冲查询API
Jul 22 #PHP
PHP面试常用算法(推荐)
Jul 22 #PHP
微信红包随机生成算法php版
Jul 21 #PHP
php集成动态口令认证
Jul 21 #PHP
You might like
PHP 的几个配置文件函数
2006/12/21 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
PHP实现的策略模式示例
2019/03/20 PHP
Smarty模板配置实例简析
2019/07/20 PHP
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
python得到单词模式的示例
2018/10/15 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python实现AdaBoost算法的示例
2020/10/03 Python
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
硕士生工作推荐信
2014/03/07 职场文书
升旗仪式主持词
2014/03/19 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
股份转让协议书范本
2015/01/27 职场文书
环卫工作个人总结
2015/03/04 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python
实现GO语言对数组切片去重
2022/04/20 Golang
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL