deg2rad() 期望参数 1 为双精度,给定对象
deg2rad() expects parameter 1 to be double, object given
当我使用 haversine 公式求距离时,它显示这个错误
deg2rad() expects parameter 1 to be double, object given
从 mysql
获取纬度和其他值
$users_id = Auth::id();
$lon = DB::table('tbl')
->SELECT('lon')
->where("id", $users_id)
->get();
$lat = DB::table('tbl')
->SELECT('lat')
->where("id", $users_id)
->get();
$vehicle_lon=DB::table('tbl_2')
->select('lon')
->get();
$vehicle_lat=DB::table('tbl_2')
->select('lat')
->get();
我的代码
function haversineGreatCircleDistance($lat, $lon, $vehicle_lat, $vehicle_lon, $earthRadius = 6371000)
{
// convert from degrees to radians
$latFrom = deg2rad($lat);
$lonFrom = deg2rad($lon);
$latTo = deg2rad($vehicle_lat);
$lonTo = deg2rad($vehicle_lon);
}
当您使用以下查询时
$lon = DB::table('tbl')
->SELECT('lon')
->where("id", $users_id)
->get();
你得到一个 collection。您必须遍历它才能获得所需的 属性。您需要使用 first()
来获得 object.
$lon = DB::table('tbl')
->SELECT('lon')
->where("id", $users_id)
->first();
但是到现在你的问题还没有解决。你得到一个 object。你必须使用它的 属性。所以让它像
$lonFrom = deg2rad($lon->lon);
lon
是您从数据库中获取的值。 $lon->lon
给你类似 0.25588484 的东西,这是 deg2rad()
方法所必需的。
当我使用 haversine 公式求距离时,它显示这个错误
deg2rad() expects parameter 1 to be double, object given
从 mysql
获取纬度和其他值$users_id = Auth::id();
$lon = DB::table('tbl')
->SELECT('lon')
->where("id", $users_id)
->get();
$lat = DB::table('tbl')
->SELECT('lat')
->where("id", $users_id)
->get();
$vehicle_lon=DB::table('tbl_2')
->select('lon')
->get();
$vehicle_lat=DB::table('tbl_2')
->select('lat')
->get();
我的代码
function haversineGreatCircleDistance($lat, $lon, $vehicle_lat, $vehicle_lon, $earthRadius = 6371000)
{
// convert from degrees to radians
$latFrom = deg2rad($lat);
$lonFrom = deg2rad($lon);
$latTo = deg2rad($vehicle_lat);
$lonTo = deg2rad($vehicle_lon);
}
当您使用以下查询时
$lon = DB::table('tbl')
->SELECT('lon')
->where("id", $users_id)
->get();
你得到一个 collection。您必须遍历它才能获得所需的 属性。您需要使用 first()
来获得 object.
$lon = DB::table('tbl')
->SELECT('lon')
->where("id", $users_id)
->first();
但是到现在你的问题还没有解决。你得到一个 object。你必须使用它的 属性。所以让它像
$lonFrom = deg2rad($lon->lon);
lon
是您从数据库中获取的值。 $lon->lon
给你类似 0.25588484 的东西,这是 deg2rad()
方法所必需的。