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 缩略图实现函数代码
Jun 23 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
PHP面向对象精要总结
Nov 07 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
深入php内核之php in array
Nov 10 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
原生js简单实现放大镜特效
2017/05/16 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
如何获得EntityManager
2014/02/09 面试题
保卫钓鱼岛口号
2014/06/20 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
党支部考察鉴定意见
2015/06/02 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技