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默认安装产生系统漏洞
Oct 09 PHP
在PHP中使用灵巧的体系结构
Oct 09 PHP
Cakephp 执行主要流程
Mar 24 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
thinkphp的c方法使用示例
Feb 24 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
PHP积分兑换接口实例
Feb 09 PHP
php动态函数调用方法
May 21 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 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
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
php中apc缓存使用示例
2013/12/25 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
JS求平均值的小例子
2013/11/29 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Python如何判断数独是否合法
2016/09/08 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
2014年上半年工作自我评价
2014/01/18 职场文书
市三好学生主要事迹
2014/01/28 职场文书
教育技术职业规划范文
2014/03/04 职场文书
白血病募捐倡议书
2014/05/14 职场文书
环保小标语
2014/06/13 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
八年级数学教学反思
2016/02/17 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android