Ich habe 5550 Datensätze von verschiedenen Routen und ich muss eine foreach-Schleife für jeden Datensatz und erhalten Sie die API-Daten. Also habe ich eine Funktion mit Guzzle in Laravel:Ich muss die Entfernungsdaten von Google Maps laden und speichern sie in meiner Datenbank
public function getDirectionDistance($origins, $distinations)
{
$client = new Client();
$res = $client->get("https://maps.googleapis.com/maps/api/distancematrix/json?origins=$origins&destinations=$distinations&key=ччч")->getBody()->getContents();
$obj = json_decode($res, true);
$distance = $obj['rows'][0]['elements'][0]['distance']['text'];
$clean = $string = str_replace(' km', '', $distance);
return $clean;
}
ich es in einem Geschäft Methode
public function store()
{
$route = $this->route->with('from','to')->get();
$maps = new Maps();
foreach ($route as $item){
$direction = new Direction();
$from = $item->from->name;
$to = $item->to->name;
$direction->route_id = $item->id;
$direction->distance = $maps->getMapsApi("$from,israel","$to,israel");
$direction->save();
sleep(3);
}
}
aber wenn ich es tun, bekomme ich 1 Entfernung für 200 Routen und dann nach 200 Reihe Ich bekomme die nächste Strecke für die nächste Route. So stoppen Sie und warten Sie, bis API abgeschlossen ist, speichern Sie sie und starten Sie die nächste Zeile. Ich brauche die Daten, um einen Machine Learning-Preisrechner zu erstellen.
Was möchten Sie tun? Möchten Sie alle 5500 Datensätze als einmal speichern? – Vikash
Ja, ich möchte die Entfernung mit der route_id speichern und eine Relation für die Route erstellen. –
Sie können Daten in Chunck teilen und speichern Sie alle Daten auf einmal, es wird in kleinen Chunck teilen und speichern – Vikash