PHP根据经纬度计算两地之间的距离
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根据经纬度计算两地之间的距离相关推荐
- php 如何根据经纬度计算距离,小程序实例:如何根据经纬度计算两点之间的距离(代码)...
本篇文章给大家带来的内容是关于小程序实例:如何根据经纬度计算两点之间的距离(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助.//计算两点位置距离 getDistance: fun ...
- Java根据经纬度计算两点之间的距离
1. 前言 在我们平时使用美团,饿了么等app进行订餐,或者使用猫眼进行订电影票的时候,都有一个距离的排序,表明该家店距离我们当前的位置,这种基于地理位置的服务,统一被称为LBS(Location ...
- 根据经纬度计算两点之间的距离(单位米)
package com.xiao.map;// 算法工程师!! public class MapUtils {private static double rad(double d) {return d ...
- 地理大圆距离 C语言,通过经纬度计算两点之间的距离
2019独角兽企业重金招聘Python工程师标准>>> 项目里有一个需求是计算两台机器之间的距离,有了这两台机器的经纬度,距离就很好计算了. 有一个 球面余弦定律 可以用来可以计算球 ...
- 通过经纬度计算两点之间的距离的公式
通过经纬度计算两点之间距离的常用公式如下: 设点 A 的纬度为 $lat_A$,经度为 $lon_A$,点 B 的纬度为 $lat_B$,经度为 $lon_B$,则两点之间的距离 $d$ 为: $d ...
- php根据经纬度计算两点之间的距离
之前我们已经说过了如何根据IP获取当前用户的经纬度,不会获取的小童鞋可以去看一下之前的文章. 这回我们将功能再延伸一下,根据将纬度计算两点之间的距离. 废话不多说,直接上码: function get ...
- 计算两个经纬度之间的距离软件_小程序使用腾讯位置服务计算两地之间的距离(有源码)...
背景: 在最近的小程序开发中,需要计算当前位置到目标位置之间的距离.背靠"腾讯爸爸",没有理由不使用腾讯的位置服务啊!趁着周末把使用方式整理一下,还写了一个demo,和大家分享一下 ...
- 给定经纬度计算距离_根据经纬度计算两地间的距离
import java.util.HashMap; import java.util.Map; public class MapDistance { private static double EAR ...
- java获取一定距离以内的经纬度值_java 根据经纬度计算两地间的距离
现在网站上都流行贴出地理坐标位置,可以看出精度纬度,如果再结合GPS, 就可以定位出用户所在地的经纬度,自然可以计算出大概距离,下面是一段小代码,根据经纬度坐标直接计算出两地间的距离package c ...
最新文章
- 自学python系列10:python的函数和函数式编程
- Java多维数组使用注意事项
- JavaScript和快速响应的用户界面
- 网络编程3之TCP/IP协议
- 为什么Spring Boot项目引入依赖的时候可以不指定依赖的版本号
- servlet destroy 示例_KET答题卡怎么填写?2020年KET答题卡填涂示例
- 腾讯抗黑灰产——自监督发现行话黑词识别一词多义
- html页面怎么让高度充满屏幕,怎么让一个页面高度占整个屏幕的_html/css_WEB-ITnose...
- python基础入门(5)之运算符
- 怎么查电脑系统版本_查中考分数线小程序功能更新,填志愿必备参考
- TensorFlow人工智能入门教程之十一 最强网络DLSTM 双向长短期记忆网络(阿里小AI实现)...
- SYN Flood应如何应对
- 为什么象网络蚂蚁这样的多线程程序可以加快下载速度?
- php函数 call_user_func
- 滚动插件 animatescroll(可以设置要滚动到位置)
- python语言百分号的含义_python中百分号意思的是什么
- 【学堂上新】Addressable系统解析及实践经验
- STM32F4+DP83848以太网通信指南系列(一):知识储备
- Ajax学习日志(三)—— 如何传递get请求参数
- (软考高级)信息系统项目管理师过关经验
热门文章
- I-TASSER连续八届在CASP自动组竞赛中蝉联冠军
- 计算机音乐谱牵丝戏,牵丝戏(简单抒情版)
- 云计算与大数据实验二 Hadoop的安装和集群的搭建
- Gox语言——支持跨平台原生GUI开发的轻量级全功能脚本语言 - GX1
- C陷阱与缺陷(一)词法“陷阱”、语法“陷阱”
- WORD 软回车(Shift + Enter)替换成硬回车(Enter)
- IDEA离线安装使用JFormDesigner(非商业用途)
- Jpg文件格式[参考]
- html 记录点击次数,jquery/js记录点击事件,单击次数加一,双击清零
- 基于AD的数字钟的设计和multisim仿真