当输入改变时,地理距离函数不会改变输出

时间:2015-11-24 18:50:51

标签: php

我有一个PHP函数,用于计算两组长坐标和纬度坐标之间的距离。初始输入是由用户提供的(我将在以后阻止SQL注入...)以邮政编码的形式,我有一个查找邮政编码的数据库,并检索long和lat。

出于测试目的,我已经回显了与邮政编码相关的long和lat值,并且每次重新提交表单时这些都会发生变化。然而,英里的距离不会改变,无论我在英国使用什么邮政编码,我都会得到“3559.8580109981”作为输出。

功能:

function calculateDistance($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;
return $miles; 
}

$point1_lat ='51.52488120000000000'; // preset for testing
$point1_lng ='-0.09101110000005974'; // preset for testing
$point2_lat = $row['latitude'];;
$point2_lng = $row['longitude'];

//Function call with the coordinates.
$miles = calculateDistance($point1_lat, $point1_lng, $point2_lat,$point2_lng);

echo '<br>Nautical Miles : '.$miles;    // This stays the same, irrelevant of postcode entered.

0 个答案:

没有答案