0

我需要在 codeigniter 中完成一项新任务,我有一个公共汽车旅行项目。根据预订,如班加罗尔到德里,赖布尔到比拉斯普尔,我必须计算距离。并以公里为单位显示。如果用户输入城市来源和目的地,它将自动计算。有人知道这是否可以完成吗?因为我迫切需要一些帮助。提前致谢!

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

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

4

1 回答 1

0

您需要使用Dijkstra 算法在图中找到最短路径。您不能假设路径是直线,就好像您在飞行一样。您需要有一个包含城市之间距离的矩阵。

于 2013-10-22T05:54:09.407 回答