background image

PHP 计算 点经纬度之间的距离代码

以下是对

PHP 计算 2 点经纬度之间的距离代码进行了分析介绍,需要的朋友可以过来参考


代码如下

:

 

function

 getDistanceBetweenPointsNew(

$latitude1

$longitude1

$latitude2

$longitude2

) {

    

$theta

 = 

$longitude1

 - 

$longitude2

;

    

$miles

 = (sin(

deg2rad

(

$latitude1

)) * sin(

deg2rad

(

$latitude2

))) + (

cos

(

deg2rad

(

$latitude1

)) * 

cos

(

deg2rad

(

$latitude2

)) * 

cos

(

deg2rad

(

$theta

)));

    

$miles

 = 

acos

(

$miles

);

    

$miles

 = rad2deg(

$miles

);

    

$miles

 = 

$miles

 * 60 * 1.1515;

    

$feet

 = 

$miles

 * 5280;

    

$yards

 = 

$feet

 / 3;

    

$kilometers

 = 

$miles

 * 1.609344;

    

$meters

 = 

$kilometers

 * 1000;

    

return

 compact('miles','feet','yards','kilometers','meters'); 

}
 

$point1

 = 

array

('lat' => 40.770623, 'long' => -73.964367);

$point2

 = 

array

('lat' => 40.758224, 'long' => -73.917404);

$distance

 = getDistanceBetweenPointsNew(

$point1

['lat'], 

$point1

['long'], 

$point2

['lat'], 

$point2

['long']);

foreach

 (

$distance

 

as

 

$unit

 => 

$value

) {

    echo

 

$unit

.': '.number_format(

$value

,4).'<br />';

}
 
The example returns the following:
 
miles: 2.6025
feet: 13,741.4350
yards: 4,580.4783
kilometers: 4.1884
meters: 4,188.3894