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根据经纬度计算两地之间的距离相关推荐

  1. php 如何根据经纬度计算距离,小程序实例:如何根据经纬度计算两点之间的距离(代码)...

    本篇文章给大家带来的内容是关于小程序实例:如何根据经纬度计算两点之间的距离(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.//计算两点位置距离 getDistance: fun ...

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

    1. 前言   在我们平时使用美团,饿了么等app进行订餐,或者使用猫眼进行订电影票的时候,都有一个距离的排序,表明该家店距离我们当前的位置,这种基于地理位置的服务,统一被称为LBS(Location ...

  3. 根据经纬度计算两点之间的距离(单位米)

    package com.xiao.map;// 算法工程师!! public class MapUtils {private static double rad(double d) {return d ...

  4. 地理大圆距离 C语言,通过经纬度计算两点之间的距离

    2019独角兽企业重金招聘Python工程师标准>>> 项目里有一个需求是计算两台机器之间的距离,有了这两台机器的经纬度,距离就很好计算了. 有一个 球面余弦定律 可以用来可以计算球 ...

  5. 通过经纬度计算两点之间的距离的公式

    通过经纬度计算两点之间距离的常用公式如下: 设点 A 的纬度为 $lat_A$,经度为 $lon_A$,点 B 的纬度为 $lat_B$,经度为 $lon_B$,则两点之间的距离 $d$ 为: $d ...

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

    之前我们已经说过了如何根据IP获取当前用户的经纬度,不会获取的小童鞋可以去看一下之前的文章. 这回我们将功能再延伸一下,根据将纬度计算两点之间的距离. 废话不多说,直接上码: function get ...

  7. 计算两个经纬度之间的距离软件_小程序使用腾讯位置服务计算两地之间的距离(有源码)...

    背景: 在最近的小程序开发中,需要计算当前位置到目标位置之间的距离.背靠"腾讯爸爸",没有理由不使用腾讯的位置服务啊!趁着周末把使用方式整理一下,还写了一个demo,和大家分享一下 ...

  8. 给定经纬度计算距离_根据经纬度计算两地间的距离

    import java.util.HashMap; import java.util.Map; public class MapDistance { private static double EAR ...

  9. java获取一定距离以内的经纬度值_java 根据经纬度计算两地间的距离

    现在网站上都流行贴出地理坐标位置,可以看出精度纬度,如果再结合GPS, 就可以定位出用户所在地的经纬度,自然可以计算出大概距离,下面是一段小代码,根据经纬度坐标直接计算出两地间的距离package c ...

最新文章

  1. 自学python系列10:python的函数和函数式编程
  2. Java多维数组使用注意事项
  3. JavaScript和快速响应的用户界面
  4. 网络编程3之TCP/IP协议
  5. 为什么Spring Boot项目引入依赖的时候可以不指定依赖的版本号
  6. servlet destroy 示例_KET答题卡怎么填写?2020年KET答题卡填涂示例
  7. 腾讯抗黑灰产——自监督发现行话黑词识别一词多义
  8. html页面怎么让高度充满屏幕,怎么让一个页面高度占整个屏幕的_html/css_WEB-ITnose...
  9. python基础入门(5)之运算符
  10. 怎么查电脑系统版本_查中考分数线小程序功能更新,填志愿必备参考
  11. TensorFlow人工智能入门教程之十一 最强网络DLSTM 双向长短期记忆网络(阿里小AI实现)...
  12. SYN Flood应如何应对
  13. 为什么象网络蚂蚁这样的多线程程序可以加快下载速度?
  14. php函数 call_user_func
  15. 滚动插件 animatescroll(可以设置要滚动到位置)
  16. python语言百分号的含义_python中百分号意思的是什么
  17. 【学堂上新】Addressable系统解析及实践经验
  18. STM32F4+DP83848以太网通信指南系列(一):知识储备
  19. Ajax学习日志(三)—— 如何传递get请求参数
  20. (软考高级)信息系统项目管理师过关经验

热门文章

  1. I-TASSER连续八届在CASP自动组竞赛中蝉联冠军
  2. 计算机音乐谱牵丝戏,牵丝戏(简单抒情版)
  3. 云计算与大数据实验二 Hadoop的安装和集群的搭建
  4. Gox语言——支持跨平台原生GUI开发的轻量级全功能脚本语言 - GX1
  5. C陷阱与缺陷(一)词法“陷阱”、语法“陷阱”
  6. WORD 软回车(Shift + Enter)替换成硬回车(Enter)
  7. IDEA离线安装使用JFormDesigner(非商业用途)
  8. Jpg文件格式[参考]
  9. html 记录点击次数,jquery/js记录点击事件,单击次数加一,双击清零
  10. 基于AD的数字钟的设计和multisim仿真