2017-05-09 97 views
-4

假设我有两组坐标,我从地图源通过android应用程序获得这些坐标并将其发送到服务器,现在服务器端将计算它们之间的距离和打印。如何找到两组坐标之间的距离在PHP

+0

你可以分享一些代码 –

+0

没有遗憾的我没有我现在想要发起的任何代码 –

回答

0

尝试这个

<?php 

$points = array 
(
    "point1" => "0,55" , 
    "point2" => "0,52" 
); 

function get_distance($inputs) 
{ 
    $count = 1; 
    foreach($inputs as $x => $y) 
    { 
     echo $x." = (".$y.")<br>"; 
     $p[$count] = explode(",",$y); 
     $count++; 
    } 

    $x1 = $p[1][0]; 
    $y1 = $p[1][1]; 

    $x2 = $p[2][0]; 
    $y2 = $p[2][1]; 

    $distance = sqrt(pow(($x2 - $x1) , 2) + pow(($y2 - $y1) , 2)); 
    echo $distance; 
} 

get_distance($points); 

?> 
+0

我已经用低点i-e“point1”=>“0,5”,“point2”=>“0,15”尝试过它。它工作得很好,谢谢 –

+0

它给了我输出10这是我的必要答案再次感谢 –

+0

如果包含在函数get_points中的距离计算,而不是单独分割坐标和计算距离会不会更容易? –

0

试试这个:

function calculateDistance($lat1, $lon1, $lat2, $lon2, $unit) { 

    $theta = $lon1 - $lon2; 
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); 
    $dist = acos($dist); 
    $dist = rad2deg($dist); 
    $miles = $dist * 60 * 1.1515; 
    $unit = strtoupper($unit); 

    if ($unit == "K") { 
     return ($miles * 1.609344); 
    } else if ($unit == "N") { 
     return ($miles * 0.8684); 
    } else { 
     return $miles; 
    } 
} 

,你可以这样调用它:

calculateDistance($latitude1, $longitude1, $latitude2, $longitude2, "K"); 

Reference

相关问题