Понадобилось обработать список из 1500 адресов вида: штат, город, зип. Необходимо было еще получить координты. Помог следующий скрипт:
geocoding.php
<?php
set_time_limit(0);
function lookup($string){
$orig = trim($string);
$string = str_replace (" ", "+", urlencode($string));
$details_url = "http://maps.googleapis.com/maps/api/geocode/json?address=".$string."&sensor=false";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $details_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = json_decode(curl_exec($ch), true);
// If Status Code is ZERO_RESULTS, OVER_QUERY_LIMIT, REQUEST_DENIED or INVALID_REQUEST
if ($response['status'] != 'OK') {
return null;
}
// print_r($response);
$geometry = $response['results'][0]['geometry'];
$longitude = $geometry['location']['lat'];
$latitude = $geometry['location']['lng'];
$array = array(
'latitude' => $geometry['location']['lat'],
'longitude' => $geometry['location']['lng'],
'location_type' => $geometry['location_type'],
);
$st = $orig.",".$geometry['location']['lat'].",".$geometry['location']['lng'];
return $st;
}
if ( $_POST['addr']) {
$addr = "";
$descr_array = explode( "\n", $_POST['addr']);
for ( $i = 0; $i < count( $descr_array); $i ++) {
$addr.=lookup($descr_array[$i])."\n";
file_put_contents("base.txt",$addr);
}
// echo $addr;
}
?>
<form action='<?=$PHP_SELF?>' method='post'>
<textarea name="addr" id="addr"></textarea>
<button type="submit">Submit</button>
</form>

