显示所选城市中特定公里范围内的距离

时间:2013-10-22 05:50:27

标签: codeigniter

我需要在codeigniter中执行一项新任务,我有一个巴士旅行项目。根据预订像班加罗尔到德里,raipur到bilaspur,我必须计算距离。并显示其在公里。如果用户进入城市源和目的地前端,它将自动计算。任何人都知道这是否可以完成?因为我迫切需要一些帮助。提前谢谢!

函数距离($ 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;
      }
}

echo distance(32.9697, -96.80322, 29.46786, -98.53506, "M") . " Miles<br>";
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "K") . " Kilometers<br>";
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "N") . " Nautical Miles<br>";
    ?>

我试过这个东西,但很好。根据我的要求。

1 个答案:

答案 0 :(得分:0)

您需要使用Dijkstra's Algorithm来查找图表中的最短路径。您不能假设路径是直线,就像您在飞行一样。您需要一个包含城市之间距离的矩阵。