Codeigniter 显示选定城市中特定公里内的距离

Codeigniter 显示选定城市中特定公里内的距离,codeigniter,Codeigniter,我需要在codeigniter中做一个新的任务,我有一个公共汽车旅行项目。根据班加罗尔到德里、赖布尔到比拉斯布尔等预订,我必须计算距离,并以公里为单位显示距离。如果用户输入城市来源和目的地,前端将自动计算。有人知道这是否可以实现吗?因为我急需帮助。提前谢谢 功能距离($lat1、$lon1、$lat2、$lon2、$unit){ $theta=$lon1-$lon2; $dist=sin(deg2rad($lat1))*sin(deg2rad($lat2))+cos(deg2rad($lat1)

我需要在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=strotupper($unit);
如果($单位=“K”){
返回(英里*1.609344);
}否则,如果($unit==“N”){
返回($miles*0.8684);
}否则{
返回$miles;
}
}
回波距离(32.9697,-96.80322,29.46786,-98.53506,“M”)。“英里
”; 回波距离(32.9697,-96.80322,29.46786,-98.53506,“K”)。“公里数
”; 回波距离(32.9697,-96.80322,29.46786,-98.53506,“N”)。“海里
”; ?>

我试过这个东西,但没问题。根据我的要求。

你需要用它在图表中找到最短路径。你不能假设这些路径是直线,就像你在飞行一样。你需要有一个包含城市之间距离的矩阵。

你的意思是“可能”还是“可能”?你在问一个问题吗?看看如何调用谷歌地图API我认为使用谷歌地图API比重新发明轮子要好。然而,你需要确保谷歌的服务条款不会给你带来麻烦。
  $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>";
    ?>