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之Smarty入门
Jan 04 PHP
PHP 全角转半角实现代码
May 16 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php eval函数一句话木马代码
May 21 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
php表单处理操作
Nov 16 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 PHP
laravel config文件配置全局变量的例子
Oct 13 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP实现两种排课方式
Jun 26 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
MYSQL环境变量设置方法
2007/01/15 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php创建sprite
2014/02/11 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
python字符串常用方法
2018/06/14 Python
python 检查文件mime类型的方法
2018/12/08 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Python gevent协程切换实现详解
2020/09/14 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
天游软件面试
2013/11/23 面试题
护士在校生自荐信
2014/02/01 职场文书
运动会横幅标语
2014/06/17 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android