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的FTP学习(一)
Oct 09 PHP
php array_flip() 删除数组重复元素
Jan 14 PHP
PHP设计模式 注册表模式
Feb 05 PHP
PHP中extract()函数的定义和用法
Aug 17 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
php-fpm配置详解
Feb 12 PHP
PHP实现对二维数组某个键排序的方法
Sep 14 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
php app支付宝回调(异步通知)详解
Jul 25 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 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扩展imagick
2014/06/02 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
js倒计时显示实例
2016/12/11 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
python str与repr的区别
2013/03/23 Python
python读取注册表中值的方法
2013/04/08 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
pycharm配置git(图文教程)
2019/08/16 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
python实现最短路径的实例方法
2020/07/19 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
销售代表求职自荐信
2013/10/01 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
财务统计员岗位职责
2015/04/14 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
KTV员工管理制度
2015/08/06 职场文书
python glom模块的使用简介
2021/04/13 Python
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
Python中文纠错的简单实现
2021/07/07 Python
Java移除无效括号的方法实现
2021/08/07 Java/Android