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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
木翼下载系统中说明的PHP安全配置方法
Jun 16 PHP
PHP 简单数组排序实现代码
Aug 05 PHP
php 大数据量及海量数据处理算法总结
May 07 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 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
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
整理Python 常用string函数(收藏)
2016/05/30 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
python -v 报错问题的解决方法
2020/09/15 Python
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
护士演讲稿范文
2014/01/05 职场文书
社区工作者感言
2014/03/02 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
求职导师推荐信范文
2015/03/27 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技