이 코드는 완벽하게 작동하는 것 같지만 하루에 2500 개 이상의 요청을 처리 할 수 없습니다. 나는 수만개의 기록을 가지고있다.
연결
<?php
$servername = "localhost";
$username = "searchdb";
$passwd = "mypass";
$dbname = "mydb";
$test_table = "update_lon_lat";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $passwd); passwd);`enter code here`
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$i = 0;
$empty = "";
경도와 위도가 null 인 모든 레코드 선택
$stmt = $conn->prepare("SELECT client_id, address, city, state, zip FROM $test_table WHERE lat = :lat ");
$stmt->bindValue(':lat' , "$empty", PDO::PARAM_STR);
$stmt->execute();
참이면 새로운 좌표를 계산하고 테이블에 씁니다.
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$i = $i + 1;
$mapaddress = "";
$client_id = $row['client_id'];
$mapaddress = ($row['address'] . ' ' . $row['city'] . ' ' . $row['state'] . ' ' . $row['zip']);
아래의 의심스러운 코드 시작
$address_holder = $mapaddress; // Google HQ
$prepAddr = str_replace(' ','+',$address_holder);
$geocode=file_get_contents('https://maps.google.com/maps/api/geocode/json?address='.$prepAddr.'&sensor=false');
$output= json_decode($geocode);
$lat_holder = $output->results[0]->geometry->location->lat;
$longitude_holder = $output->results[0]->geometry->location->lng;
위의 의심스러운 코드 끝
$stmt2 = $conn->prepare("UPDATE $test_table SET longitude = :longitude, lat = :lat WHERE client_id = :client_id");
$stmt2->bindValue(':longitude' , "$longitude_holder", PDO::PARAM_STR);
$stmt2->bindValue(':lat' , "$lat_holder", PDO::PARAM_STR);
$stmt2->bindValue(':client_id' , "$client_id", PDO::PARAM_STR);
$stmt2->execute();
echo $i . ' ' . $row['address'] . ' ' . $row['city'] . ', ' . $row['state'] . ' ' . $row['zip'] . ' lon=' . $longitude_holder
. ' Lat=' . $lat_holder . '<br>';
}
echo "Records Updated = " . $i;
?>code here
옵션 1
약간의 돈을 지출하여 더 높은 할당량을 잠금 해제 할 수 있습니다. https://developers.google.com/maps/documentation/geocoding/usage-limits#premium-usage-limits
옵션 2
사용 한도는 프로젝트별로 적용되므로 여러 프로젝트를 만들고 최대 허용 한도에 도달하면 client_id를 최대 할당량을 초과하지 않은 다른 프로젝트로 변경하면됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다