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生成文件
Jan 15 PHP
php去除重复字的实现代码
Sep 16 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
php实现将HTML页面转换成word并且保存的方法
Oct 14 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
php连接mysql数据库最简单的实现方法
Sep 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加MYSQL服务器
2006/10/09 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
js实现时分秒倒计时
2019/12/03 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python tkinter事件高级用法实例
2018/01/31 Python
python 字典访问的三种方法小结
2019/12/05 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
护理专业自荐信
2013/12/03 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
2014年安全生产责任书
2014/07/22 职场文书
学生安全责任书范本
2014/07/24 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
python实现图片批量压缩
2021/04/24 Python
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
Android存储中最基本的文件存储方式
2022/04/30 Java/Android
Python中tqdm的使用和例子
2022/09/23 Python