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获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
php ob_flush,flush在ie中缓冲无效的解决方法
May 09 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
Apr 20 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
PHP实现微信发红包程序
Aug 24 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
ThinkPHP 3使用OSS的方法
Jul 19 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
python僵尸进程产生的原因
2017/07/21 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Python使用python-docx读写word文档
2019/08/26 Python
Python实现区域填充的示例代码
2021/02/03 Python
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
电子信息专业学生自荐信
2013/11/09 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
新手入门Mysql--概念
2021/06/18 MySQL
2022年四月新番
2022/03/15 日漫
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js