Вам действительно нужно зациклить и сделать несколько проверок того, что Google нашел в этих точках, небольшой скрипт для фактического чтения / зацикливания возвращаемых данных будет (в PHP):
<?php
$data = json_decode(file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=46.1124,1.245&sensor=true"));
if($data->status == "OK") {
if(count($data->results)) {
foreach($data->results as $result) {
echo $result->formatted_address . "<br />";
}
}
} else {
// error
}
?>
Теперь на основедокументация:
Обратите внимание, что обратный геокодер вернул более одного результата.... и т. д.
И:
Как правило, адреса возвращаются от наиболее специфических к наименее специфическим;более точный адрес - самый выдающийся результат ... и т. д.
Вам нужен только первый результат, чтобы получить то, что вы хотите (или, по крайней мере, найти его там $data->results[0]->
.
Так чтопрочитайте типов и на основании этого вы можете проверить, хотите ли вы получить результат или нет:
<?php
$data = json_decode(file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=46.1124,1.245&sensor=true"));
if($data->status == "OK") {
if(count($data->results)) {
foreach($data->results[0]->address_components as $component) {
if(in_array("premise",$component->types) || in_array("route",$component->types) || in_array("park",$component->types)) {
echo $component->long_name . "<br />";
}
}
}
} else {
// error
}
?>