我在玩Google地圖和地理編碼(將地址轉換爲lang/lat座標)。一切正常,迄今爲止,我得到一個從谷歌地圖服務器與文件的答案:獲取JSON對象的一部分
$address = urlencode($address);
$url = "http://maps.google.com/maps/api/geocode/json?address={$address}&sensor=false";
$content = file_get_contents($url);
echo '<pre>';
print_r($content);
echo '</pre>';
點是,我不需要所有的信息。
問題
一個我怎麼只得到了JSON對象的一部分? (例:我只需要'results'->'address_components'->'type' = 'country';
)
乙我可減少返回(谷歌)的內容文件不知何故,因爲我並不需要的一切嗎?
更新
我需要添加數據的一部分,以JSON對象。因此,解碼&然後編碼看起來像一個能量損失(在這一點上)。任何想法,如果我會更好(更快)請求一個XML對象? (最後一組對象是相當大的這就是爲什麼我應該真正關心的性能。)
從谷歌地圖的地圖服務器(文件內容)
例JSON答案:
{
"results" : [
{
"address_components" : [
{
"long_name" : "28",
"short_name" : "28",
"types" : [ "street_number" ]
},
{
"long_name" : "Sellhorner Weg",
"short_name" : "Sellhorner Weg",
"types" : [ "route" ]
},
{
"long_name" : "Behringen",
"short_name" : "Behringen",
"types" : [ "sublocality", "political" ]
},
{
"long_name" : "Bispingen",
"short_name" : "Bispingen",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Soltau-Fallingbostel",
"short_name" : "Soltau-Fallingbostel",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Niedersachsen",
"short_name" : "NDS",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Deutschland",
"short_name" : "DE",
"types" : [ "country", "political" ]
},
{
"long_name" : "29646",
"short_name" : "29646",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Sellhorner Weg 28, 29646 Bispingen, Deutschland",
"geometry" : {
"location" : {
"lat" : 53.118080,
"lng" : 9.966859999999999
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 53.11942898029150,
"lng" : 9.96820898029150
},
"southwest" : {
"lat" : 53.11673101970850,
"lng" : 9.965511019708496
}
}
},
"partial_match" : true,
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
訪問你想要的部分,然後用這個子數組寫出一個新文件? – mario
B部分確實涉及到Google API,應該是一個單獨的問題,或者您應該將標題更改爲Google地圖專用。 –