php通过两个地点经纬度求距离

<?php

/**

*求两个已知经纬度之间的距离,单位为米

*@param lng1,lng2 经度

*@param lat1,lat2 纬度

*@return float 距离,单位米

*@author yalong sun<[email protected]>

**/

function getdistance($lng1,$lat1,$lng2,$lat2){

//将角度转为狐度

$radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为弧度

$radLat2=deg2rad($lat2);

$radLng1=deg2rad($lng1);

$radLng2=deg2rad($lng2);

$a=$radLat1-$radLat2;

$b=$radLng1-$radLng2;

$s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137*1000;

return $s;

}

echo getdistance(116.46865,39.914638,116.482233,39.91425);

?>

时间: 2024-08-11 07:50:10

php通过两个地点经纬度求距离的相关文章

地理空间距离计算及优化(依据两个点经纬度计算距离)

1.地理空间距离计算面临的挑战 打开美团app.无论是筛选团购还是筛选商家,默认的排序项都是"离我近期"或者"智能排序"(例如以下图所看到的). 无论是"离我近期"还是"智能排序".都涉及到计算用户位置与各个团购单子或者商家的距离(注:在智能排序中距离作为一个重要的參数參与排序打分).以筛选商家为例.北京地区有5~6w个POI(本文将商家称之为POI),当用户进入商家页,请求北京全城+全部品类+离我近期/智能排序时.我们筛选服

PHP下的经纬度求距离

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

利用SQL计算两个地理坐标(经纬度)之间的地表距离

两个地理坐标(经纬度)地表距离计算公式: 公式解释如下: Long1,Lat1表示A点经纬度,Long2,Lat2表示B点经纬度: a=Lat1–Lat2 为两点纬度之差,b=Long1-Long2为两点经度之差: 6378.137为地球半径,单位为千米: 计算出来的结果单位为千米,若将半径改为米为单位则计算的结果单位为米; 计算精度与谷歌地图的距离精度差不多,相差范围在0.2米以下. 引用自https://segmentfault.com/a/1190000013922206 SQL语句实现如

Java对关于两个地点的根据经纬度算出后排序

/** * 查询收货地址列表 * * @param request * @param wechatId * @return */ @RequestMapping("/weixin/address/queryRecentlyAddress") public AddressVo queryRecentlyAddress(HttpServletRequest request, Integer wechatId, AddressVo vo) { String openId = OauthUti

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

不多说了,自己代码就行,你可以直接拿来用. /** * 计算两个坐标之间的距离(米) * @param float $fP1Lat 起点(纬度) * @param float $fP1Lon 起点(经度) * @param float $fP2Lat 终点(纬度) * @param float $fP2Lon 终点(经度) * @return int */ function distanceBetween($fP1Lat, $fP1Lon, $fP2Lat, $fP2Lon){ $fEARTH_

HDU1007(求最近两个点之间的距离)

一年前学长讲这题的时候,没听懂,自己搜解题报告也看不懂,放了一年.如今对分治和递归把握的比一年前更加熟悉,这题也就解决了. 题意:给你一堆点让你求最近两点之间距离的一半,如果用暴力的话O(n*n)明显会超时,那么我们就用分治思想,将所有点按照横坐标x排序,然后取中间的mid,分着求1-mid,mid-n,这样递归求解,递归只需要logn级别就可以完成递归,这有点类似二分思想. 1.我们取左边点对最小和右边点对最小比较,取最小的,记做d 2:但是最近点有可能一个点在左边,一个点在右边,所以要单独考

求二叉树的给定两个结点之间的距离

给定一颗二叉树,和两个给定的结点,求出这两个结点之间的距离 拿到题目时不要认为是求出二叉树的结点之间的最大距离,题目是求两个结点的之间的距离 题目有几种情况 两个结点分布在根节点的左子树或者右子树 一个结点分布在根节点的左子树,一个结点分布在根节点的右子树 这两个结点是兄弟结点 一个结点是另外结点的祖先结点 本题的解题思路是 利用层次遍历的方法,获取每个结点的高度,根节点左子树的高度用正数表示,根节点右子树的高度用负数表示 这样当两个结点分布在:一个结点分布在根节点的左子树,一个结点分布在根节点

获取两个点经纬度之间的距离

/** * js获取两个经纬度之间的距离 * @param lat1 第一点的纬度 * @param lng1 第一点的经度 * @param lat2 第二点的纬度 * @param lng2 第二点的经度 * @returns {Number} */ function getDistance(lat1, lng1, lat2, lng2) { var radLat1 = lat1*Math.PI / 180.0; var radLat2 = lat2*Math.PI / 180.0; var

给定数轴上的n个点,求距离最近的两个点的距离

public class MinimumSpacing { //给定平面上的n个点,求距离最近的两个点的距离. //无从下手的话,先分解问题,分解成简单的,逐个分析,然后再合在一起考虑 //这是个2维的数据,那就先降维到1维分析 //先考虑在一条数轴上有n个点,求最近距离的2个点的距离 // // ------*--*------*---*---> //用分治思想处理 // 1.分割 2.处理 3.合并 3个步骤 // // 1.分割: // 将整个数据[先排序]得到数组s,然后将s从中间一份为