Google Maps API formatted_address

时间:2013-12-05 22:42:21

标签: javascript php wordpress google-maps

我使用php将纬度和经度转换为WordPress自定义字段中的地址。除了我在地址末尾的国家(例如1234第一城市州90210美国),它的工作方式我想要。

这是我用来进行转换的代码。有关如何删除国家/地区名称的任何想法?

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);

2 个答案:

答案 0 :(得分:0)

由于这个原因,您不需要谷歌提供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"
   ]
}

答案 1 :(得分:0)

我有个主意

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

也许你可以试试这样的事情