2013-12-05 2 views
0

Я использую php для преобразования широты и долготы в адрес в пользовательском поле WordPress. Он работает, как я хочу, кроме как получить страну в конце адреса (например, 1234 1-го городского штата 90210 США).Google Maps API formatted_address

Это код, который я использую для преобразования. Любые мысли о том, как удалить название страны?

function getaddress($post_id) 
{ 
    $coorloc = get_field('event_location'); 

$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.urlencode($coorloc).'&sensor=false'; 
$json = @file_get_contents($url); 
$data=json_decode($json); 
$status = $data->status; 
if($status=="OK") 
$address = $data->results[0]->formatted_address; 
update_post_meta($post_id, "geocoderaddress", $address); 

} 
add_action('acf/save_post', 'getaddress', 1); 

ответ

0

Для этого не нужно, поскольку google предоставляет address_components именно по этой причине.

http://maps.googleapis.com/maps/api/geocode/json?sensor=false&latlng=51.278777,-0.951090

API-интерфейс предоставляет каждый компонент, так что вы можете использовать каждую часть, как вы.

address_components сниппет для справки:

{ 
    "long_name":"United Kingdom", 
    "short_name":"GB", 
    "types":[ 
     "country", 
     "political" 
    ] 
}, 
{ 
    "long_name":"RG27 9XB", 
    "short_name":"RG27 9XB", 
    "types":[ 
     "postal_code" 
    ] 
} 
0

У меня есть идея

$addressBits = explode(" ", $address); 
$parts = count($addressBits); 
for($i = o; $i <= $parts - 1; $i++){ 
    $newAddress .= $addressBits[$i] . " "; 
} 

может быть, вы могли бы попробовать что-то вроде этого