【发布时间】:2020-03-27 20:46:15
【问题描述】:
我有以下两个 Driver_position 和 user_position 表,其中正在更新用户和驱动程序的纬度/经度位置。我需要找出每个 user_id 接近 5km 的 user_position 的 driver_id,这样结果就像user_id1 = driver_id1,driver_id2,driver_id3 etc For user_id2=driver_id5
到目前为止,我有以下代码来计算以公里为单位的距离。如何在 PHP 中实现上述目标
$lat1 = deg2rad($user_latitude);
$lon1 = deg2rad($user_longitude);
$lat2 = deg2rad($driver_latitude);
$lon2 = deg2rad($driver_longitude);
$latDelta = $lat1 - $lat2;
$lonDelta = $lon1 - $lon2;
$earthRadius=3959;
$angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
cos($lat2) * cos($lat1) * pow(sin($lonDelta / 2), 2)));
//return $angle * $earthRadius;
$dis= ($angle * $earthRadius)/0.62137; // miles to km conversion mi / 0.62137 = km
【问题讨论】: