0
5550 개의 다른 경로가 있으며 각 레코드에 대해 foreach 루프를 수행하고 API 데이터를 가져와야합니다. 그래서 나는 Laravel에 폭식과 기능을 만들어 :Google지도에서 거리 데이터를로드하여 데이터베이스에 저장해야합니다.
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;
}
내가 가게 방법
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);
}
}
에 그것을 사용하지만 그것을 할 때, 나는 200 개 루트 1 개 거리를 취득하고 이후 200 행 나는 다음 길을위한 다음 거리를 얻는다. 중지하고 api가 완료 될 때까지 기다렸다가 저장하고 다음 행을 시작합니다. 기계 학습 가격 계산기를 만들려면 데이터가 필요합니다. 을 내가 CURL과 함께 Google에 전화를 걸 함수를 만들어 : 저를이 방식으로 작동 들어
무엇을하기를 원하십니까? 한 번에 5500 개의 레코드를 모두 저장 하시겠습니까? – Vikash
예, route_id를 사용하여 거리를 저장하고 경로의 관계를 만들고 싶습니다. –
chunck의 데이터를 나누어 한 번에 모든 데이터를 저장할 수 있습니다. 작은 chunck로 나누어 저장합니다 – Vikash