【发布时间】:2018-04-30 16:01:58
【问题描述】:
我想获取两列的值并同时遍历两列,并使用它来计算使用纬度和经度的距离,但问题是它循环用于力学的所有纬度并循环用于力学的所有经度,但两者应合二为一。
$mechanicsLatitude = DB::table("tranxav_mechanics")->get(['latitude','email']);
$mechanicsLongitude = DB::table("tranxav_mechanics")->get(['longitude', 'email']);
foreach ($mechanicsLatitude as $latitudeData){
foreach ($mechanicsLongitude as $longitudeData){
$theta = $driverLongitude - $longitudeData->longitude;
$dist = sin(deg2rad($driverLatitude)) *
sin(deg2rad($latitudeData->latitude))
+ cos(deg2rad($driverLatitude))
* cos(deg2rad($latitudeData->latitude))
* cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper("K");
if ($unit == "K") {
return $miles = $miles * 1.609344;
} elseif ($unit == "N") {
$miles = $miles * 0.8684;
} else {
$miles;
}
TranxavTransaction::create([
'dEmail' => $request->get("email"),
'mEmail' => $longitudeData->email,
'car_model' => $model,
'how_it_happened' => $request->get("likelyProblem"),
'latitude' => $request->get("latitude"),
'longitude' => $request->get("longitude"),
'problem' => input::get('likelyProblem')
]);
}
}
【问题讨论】: