php 经纬度两点间距离公式,PHP根据两点间的经纬度计算距离,php两点经纬度计算...

PHP根据两点间的经纬度计算距离,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 radians

to work with the formula

*/

$lat1 = ($lat1 * pi() ) / 180;

$lng1 = ($lng1 * pi() ) / 180;

$lat2 = ($lat2 * pi() ) / 180;

$lng2 = ($lng2 * pi() ) / 180;

/*

Using the

Haversine formula

http://en.wikipedia.org/wiki/Haversine_formula

calculate the distance

*/

$calcLongitude = $lng2 - $lng1;

$calcLatitude = $lat2 - $lat1;

$stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);

$stepTwo = 2 * asin(min(1, sqrt($stepOne)));

$calculatedDistance = $earthRadius * $stepTwo;

return round($calculatedDistance);

}

php计算两个经纬度之间的距离问题,指导

不会算这个东西,不过看代码发现你的代码里有些问题

第一、两点间的直线距离平方:$len算完了后面没有用到,也没有return, 完全就没用了

第二、输入相同的经纬度,结果居然不是0,而且还是个很大的数,所以应该是有问题的

你可以百度一下“php 按经纬度算两点间距离”,有不少现成的代码

我看这个介绍的比较详细,还有代码,你可以看看

blog.csdn.net/...963740

如果知道两点的经纬度 怎算两点之间的距离

同纬度不同经度 (赤道除外)

h X 111 X COSD=G (h=两地经度差 D=当地的地理纬度 G=实际距离)

跨纬度的需要构造个三角

比如说AB两点不同经纬度(A经B纬)

那就先算出与A点共线的那条纬度B'的距离,在算A到B'的距离,在用勾股定理就可以得出

简单的说可用以下通用公式:

地球上任两点间距离公式:

地球上任两点,其经度分别为A1、A2(E正,W负),纬度分别为B1、B2(N正,S负)。

令A0=(A1-A2)÷2,B0=(BI-B2)÷2

f=√sinB0×sinB0+cosB1×cosB2×sinA0×sinA0

1、两点间空间直线距离=2fR

2、两点间最小球面距离=arcsinf÷90°×∏R(角度)

3、两点间最小球面距离=arcsinf×2R(弧度)

说明:E、W、N、S=东西南北;R=地球半径;√=根号;∏=圆周率。

代入公式自己算吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值