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 第三节 变量介绍
Apr 28 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
PHP 线程安全与非线程安全版本的区别深入解析
Aug 06 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
Nov 05 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
php设置页面超时时间解决方法
Sep 22 PHP
smarty自定义函数用法示例
May 20 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
js CSS操作方法集合
2008/10/31 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
JavaScript作用域链使用介绍
2013/08/29 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
Python中的exec、eval使用实例
2014/09/23 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
python实现横向拼接图片
2020/03/23 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
实习生体会的自我评价范文
2013/11/28 职场文书
期末评语大全
2014/05/04 职场文书
理发店策划方案
2014/06/05 职场文书
委托公证书格式
2015/01/26 职场文书
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers