我想重新格式化地址。如何使用PHP从Google Geocoding API获取街道名称,电话号码,城市,州名?
所以我想使用Google地理编码API。 这里是一个输出
{
"results" : [
{
"address_components" : [
{
"long_name" : "301",
"short_name" : "301",
"types" : [ "subpremise" ]
},
{
"long_name" : "880",
"short_name" : "880",
"types" : [ "street_number" ]
},
{
"long_name" : "N Street",
"short_name" : "N St",
"types" : [ "route" ]
},
{
"long_name" : "South Addition",
"short_name" : "South Addition",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Anchorage",
"short_name" : "Anchorage",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Anchorage",
"short_name" : "Anchorage",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Alaska",
"short_name" : "AK",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "99501",
"short_name" : "99501",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "880 N Street #301, Anchorage, AK 99501, USA",
"geometry" : {
"location" : {
"lat" : 61.21391800000001,
"lng" : -149.908357
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 61.21526698029151,
"lng" : -149.9070080197085
},
"southwest" : {
"lat" : 61.2125690197085,
"lng" : -149.9097059802915
}
}
},
"partial_match" : true,
"types" : [ "subpremise" ]
}
],
"status" : "OK"
}
我如何获得门牌号,街道地址,套房#(如果有的话),城市,州,邮编。
令我困惑的部分是address_component具有不同的组件。我怎么能说出每个人的立场?
我想我可以做这样的事情让我需要什么
<?php
$obj = json_decode($json, true);
$c = $obj['results'][0]['address_components'];
echo '</pre>';
echo 'BUILDING NAME: ' . $c[1]['long_name'] . "<br>\n";
echo 'BUILDING NUMBER: ' . $c[2]['long_name'] . "<br>\n";
echo 'STREET NAME: ' . $c[3]['long_name'] . "<br>\n";
echo 'CITY: ' . $c[5]['long_name'] . "<br>\n";
echo 'COUNTY: ' . $c[6]['long_name'] . "<br>\n";
echo 'STATE: ' . $c[7]['short_name'] . "<br>\n";
echo 'COUNTRY: ' . $c[8]['short_name'] . "<br>\n";
echo 'POSTAL CODE: ' . $c[9]['short_name'] . "<br>\n";
?>
但是这不会对所有地址工作。使用上面的地址是我的输出。因为你可以告诉标签不符合数据。
BUILDING NAME: 880
BUILDING NUMBER: N Street
STREET NAME: South Addition
CITY: Anchorage
COUNTY: Alaska
STATE: US
COUNTRY: 99501
我怎样才能得到理想的结果,每次都是正确的? 我的假设,我会不知何故必须检查类型值,但我不知道如何以及我需要看什么规则。
这就是 “类型” 指数是什么。 – 2014-11-05 18:44:36
什么是“类型”索引拘留?在某些情况下,我看到了administrative_area_level_2,administrative_area_level_1,administrative_area_level_3,political,locality什么是所有可能的价值以及如何定义它们? – Jaylen 2014-11-05 18:48:09
我认为这是我在寻找https://developers.google.com/maps/documentation/geocoding/#Types – Jaylen 2014-11-05 18:49:35