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世纪万年历
Dec 06 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
PHP解密Unicode及Escape加密字符串
May 17 PHP
PHP实现多文件上传的方法
Jul 08 PHP
PHP使用file_get_content设置头信息的方法
Feb 14 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
phpMyAdmin通过密码漏洞留后门文件
Nov 20 PHP
PHP Trait代码复用类与多继承实现方法详解
Jun 17 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 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
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
汉语言文学毕业生求职信
2013/10/01 职场文书
物流管理专业推荐信
2014/09/06 职场文书
企业2014年度工作总结
2014/12/10 职场文书
失职检讨书大全
2015/01/26 职场文书
酒会邀请函
2015/01/31 职场文书
南京导游词
2015/02/03 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
Mysql中mvcc各场景理解应用
2022/08/05 MySQL