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 相关文章推荐
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
php检测数组长度函数sizeof与count用法
Nov 17 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
thinkPHP自动验证机制详解
Dec 05 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
laravel框架中控制器的创建和使用方法分析
Nov 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
检测png图片是否完整的php代码
2010/09/06 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
对Python中plt的画图函数详解
2018/11/07 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
Python如何读取、写入JSON数据
2020/07/28 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
材料工程专业毕业生求职信
2014/03/04 职场文书
大学生两会精神学习心得体会
2014/03/10 职场文书
公司管理建议书范文
2014/03/12 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
详解flex:1什么意思
2022/07/23 HTML / CSS