PHP根据经纬度计算两地之间的距离

php 根据位置的经纬度计算距离 location是位置字段,是存的json格式,其他的字段我就不截图放上来了。在开发中,我们要经常和位置打交道,要计算附近的位置、距离什么的。php代码根据自忆的的业务来。我代码没有附全,请见凉!二、下面附上php代码。上面的sql语句经纬度潜换成你自已的。 阅读详情

PHP计算两点的距离,无外乎两种方法:一种是调用地图接口,其次是纯数学计算(计算球面上两个点之间的距离)!

方法一:调用接口

地图API会有自己的算法,可能会根据实际情况路线计算距离,比如说不能直接直线到达,需要绕行,会计算绕行的路线的长度。但缺点是需要开发密钥(key),而且一般来说每天会有请求次数限制。

/**
 * 根据起点坐标和终点坐标测距离[http://lbs.qq.com/webservice_v1/guide-distance.html]
 * @param  [array]   $from [起点坐标(经纬度),例如:array(118.012951,36.810024)]
 * @param  [array]   $to [终点坐标(经纬度)]
 * @return [string]  距离数值
 */
function get_distance($from,$to){
    sort($from);
    sort($to);
    $from = implode(",", $from);
    $to = implode(",", $to);
    $curl = 'http://apis.map.qq.com/ws/distance/v1/?mode=driving&from='.$from.'&to='.$to.'&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77';
    $content = request($curl);
    $result = json_decode($content,true);
    return $result['result']['elements']['distance'];
}

方法二:数学计算

利用数学公示计算,简单粗暴,计算出来的是绝对直线距离,无法直接到达的也会按直线计算。

/**
 * 根据起点坐标和终点坐标测距离
 * @param  [array]   $from     [起点坐标(经纬度),例如:array(118.012951,36.810024)]
 * @param  [array]   $to     [终点坐标(经纬度)]
 * @param  [bool]    $km        是否以公里为单位 false:米 true:公里(千米)
 * @param  [int]     $decimal   精度 保留小数位数
 * @return [string]  距离数值
 */
function get_distance($from,$to,$km=true,$decimal=2){
    sort($from);
    sort($to);
    $EARTH_RADIUS = 6370.996; // 地球半径系数
    
    $distance = $EARTH_RADIUS*2*asin(sqrt(pow(sin( ($from[0]*pi()/180-$to[0]*pi()/180)/2),2)+cos($from[0]*pi()/180)*cos($to[0]*pi()/180)* pow(sin( ($from[1]*pi()/180-$to[1]*pi()/180)/2),2)))*1000;
    
    if($km){
        $distance = $distance / 1000;
    }
 
    return round($distance, $decimal);
}
php根据经纬度计算两点之间的距离 之前我们已经说过了如何根据IP获取当前用户的经纬度,不会获取的小童鞋可以去看一下之前的文章。 这回我们将功能再延伸一下,根据将纬度计算两点之间的距离。 废话不多说,直接上码: function getDistance($mapFrom,$mapTo){ //$mapFrom 出发地的经纬度 格式‘39.071510,117.190091’即纬度与经度用逗号隔开 //$mapTo 目的地的将纬度 格式'40.007632,116.389160'即纬度与经度用逗号隔开 阅读详情

相关推荐

php计算出两个经纬度之间的距离(单位:米)

/* * 计算出两个经纬度之间的距离(单位:米) * */ public function getdistanceAction() { $lng1=117.27; //经度1 $lat1=31.86; //纬度1 $lng2=120.19; //经度2 $lat2=30.26; //纬度2 $EARTH_RADIUS = 6378137;

辉少的博客 2548

经纬度计算函数php,php 关于经纬度距离计算方法 成功版

1.PHP实现通过经纬度计算距离单位为公里function getdistance($lng1,$lat1,$lng2,$lat2)//根据经纬度计算距离{//将角度转为狐度$radLat1=deg2rad($lat1);$radLat2=deg2rad($lat2);$radLng1=deg2rad($lng1);$radLng2=deg2rad($lng2);$a=$radLat1-$radL...

weixin_35721505的博客 648

PHP中百度地图和高德地图经纬度互相转换

if(! function_exists('bdEncrypt')) { //GCJ-02(火星,高德)坐标转换成BD-09(百度)坐标 //@param $longitude 高德经度 //@param $latitude 高德纬度 function bdEncrypt($longitude,$latitude){ $x_pi = 3.14159...

zjxy123456的博客 1740

php 根据两个经纬度 计算两地之间的距离

/** * 计算距离 * @param Decimal $lat1 起点经度 * @param Decimal $lng1 起点纬度 * @param Decimal $lat2 终点经度 * @param Decimal $lng2 终点纬度 */ public function getDistance($lat1, $lng1, $lat2, $lng2) { $p = 3.141592653589

BlizzardWu的博客 240

R语言:根据经纬度计算国内两个地点之间的距离

############################################ # 输入国内两个地点 # 根据经纬度计算两个经纬度之间的距离 ############################################ # 计算距离函数 add_dist <- function(address1,address2){ ...

aijiao9077的博客 3456

根据经纬度获取两点之间的距离 -- 腾讯地图(PHP后台)

项目需求:根据经纬度获取两点之间的距离,我这里用的是腾讯地图的api php代码: /** * 利用腾讯地图api * 计算两点地理坐标之间的距离 */ function getDistance(){ $key = '填写你的key'; //腾讯地图开发自己申请 $mode = 'driving'; //driving(驾车)、walking(步行) $from = '填写你的起点坐标'; //例如:39.14122,117.14428 $to = '起点坐标;终点坐标';

马冠亚的博客 3万+

php实现根据经纬度计算出两地之间的距离

php实现根据经纬度计算出两地之间的距离

Quiet-Night的博客 2286

windows10下 iperf3测试带宽

客户端输入:"iperf3.exe -u -c 服务器IP地址 -b 5g" //客户端给服务器发送udp数据包,最大带宽为5g。客户端输入:“iperf3.exe -c 服务器IP地址 -P 10“//表示客户端10路并行给服务器发送TCP包;上图可知:带宽是15Gbps(这里不知道为什么下面测试的UDP会比这里TCP慢 按道理UDP不可能比TCP慢的5.)3. 验证是否下载成功,在打开的窗口中输入“iperf3.exe -v”,会出现安装的版本,表示安装成功了。5. iperf3参数。

xiaoqixiaoguai的博客 5895

PHP用科学计数法根据经纬度计算两地之间的距离

PHP 是用科学计数法根据经纬度计算两地之间的距离

weixin_42063472的博客 194

【保姆级教程/代码】使用PRIDE PPP-AR软件解算ZTD、反演GNSS PWV,并评估精度

在本算例中,我下载了BJFS站2024年的IGS ZTD产品,用于评估PRIDE PPP-AR软件解算出ZTD结果的精度。

weixin_43910227的博客 2375

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2136

【PHP】根据经纬度获取两地距离,俩行代码教你根据数组字段进行排序 000

01根据经纬度计算俩地距离 这里可以直接计算出俩地之间的距离,参数都是先从纬度开始。单位是公里。 02数据重组把距离跟标识存放在一起 首先我们需要知道的是计算出来的距离是需要跟一个唯一的标识一起存放的,每个项目不同,所以根据你们自己的需求进行更改即可。 在上图中主要就是一个数据重组,在下图就是数据重组后的数据结构 03根据第二步组装的数据进行距离...

咔咔博客 1182

智能车八邻域图像算法_二

智能车八邻域图像算法 文章目录智能车八邻域图像算法前言一、一些想法二、生长方向的使用1.点的生长方向的表示2. 用点的生长方向来做初步判断1.引入库2.读入数据总结 前言 上一篇里面讲过用八邻域来获得赛道边界:智能车八邻域图像算法 当已经能稳定获得赛道边界时,就可以进行元素识别,获得偏差了。 这里就介绍一下我的一些思路。 早在前两年,优快云上就有一篇关于八邻域如何处理元素的文章第十五届全国大学生智能汽车竞赛-双车组三轮图像处理总结,写得很好,我当时也参考了这篇文章,但是我觉得不是很详细,所以我这里想写得

技术缝合怪的博客 1万+

根据经纬度计算两点之间的距离

/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6367000; //approximate radius of earth in meters

tyasd 675

深入解析DMR协议中的4-CPFSK调制技术与实现

本文深入解析了DMR协议中采用的4-CPFSK调制技术。该技术凭借其连续相位、恒包络的特性,在有限的12.5kHz信道带宽内实现了稳健的通信,有效对抗干扰并提升功放效率,是DMR数字对讲机清晰、稳定通信的核心保障。文章详细阐述了其原理、实现细节及在协议栈中的协同作用。

weixin_29306875的博客 232

华为P812E光猫补全shell配置PON口模式

终于看到华为企业级的带2.5电口P812E横空出世了,相信很多发烧友也已经将此收入昂中。相信体验的同时,遇到的第一件事情就是配置PON口模式的问题,本文将带发烧基友解锁模式。

GUAIYU的博客 5743

PHP下的经纬度求距离

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33769207的博客 87

最新Python爬虫实战(入门爬虫篇)——案例1:某瓣网站Top250图片数据采集(附上完整爬虫代码)

本次案例通过Python爬虫技术实现了某瓣Top250电影封面的批量下载。代码采用模块化设计,函数实现cookies的自动解析,简化了配置流程,涵盖请求、解析、存储的完整流程。学习重点包括:抓包工具定位数据源、正则表达式匹配图片链接、模拟请求头绕过反爬机制、以及自动化文件管理。需要注意控制请求频率并遵守网站使用规范,适用于入门爬虫实践。

努力让自己发光,对的人才能迎着光而来 16万+

计算地球上两点间的距离

/** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function get_distance($lat1, $lng1, $lat2, $lng2){ $earthRadius = 6367000; //approximate radius of ear...

weixin_30815427的博客 133

基于Python的虚拟货币社区情绪分析与市场价格预测爬虫实现

本文探讨了如何利用Python爬虫技术获取虚拟货币社区数据,并通过情感分析预测市场价格走势。我们将使用最新的异步爬虫框架、自然语言处理技术和机器学习模型,构建一个完整的社区情绪分析系统。本文提供了详细的代码实现和理论解释,适合作为毕业设计参考。关键词:Python爬虫、虚拟货币、情感分析、价格预测、异步爬虫、机器学习爬虫框架aiohttp和httpx用于异步HTTP请求HTML解析和parsel数据存储MongoDB和Pandas用于数据处理自然语言处理库和VADER情感分析工具机器学习和。

2201_76125261的博客 524

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【百度地图】计算两组经纬度坐标之间的距离PHP函数

计算两坐标点之间的距离在后台实现的方法如下,做为收藏以后好查阅   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 /**  * 计算两组经纬度坐标 之间的距离  * params :lat1 纬度1; lng1 经度1; lat

摘取天上星 2698

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

PHP根据经纬度计算两地的距离

要根据经纬度计算两地的距离,可以使用Haversine公式。Haversine公式是一种计算地球上两点之间距离的方法,适用于球面上的距离计算。

codeast的博客 1202

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PHP计算两个经纬度之间的距离

<?php class Location { public function __construct() { $this->_geo_conf = array( 'pi' => pi(), 'EARTH_RADIUS' => 6378.137, ); ...

程序猿的世界 2349
上一篇: Redis 主从搭建
下一篇: Warning: Module ‘mysqli‘ already loaded in Unknown on line 0
陈卿诺语
博客等级 码龄5年 167粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值