16

Google Geocode APIからのjson応答を解析しようとしていますが、理解するのに少し問題があります。

Geocode APIに慣れていない場合は、次のURLを参照してください:http://maps.google.com/maps/api/geocode/json? address = albert%20square&sensor = false

次のコードを使用してリクエストを解析しています

<?php

$address = urlencode($_POST['address']);
$request = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=" . $address . "&sensor=false");
$json = json_decode($request, true);

?>

そして、私は次のように出力しようとしています:

echo $json['results'][0]['formated_address'];

何もエコーされていない理由がわかりません。私も試し$json[0]['results'][0]['formated_address']ました。私はこれが初心者の質問であることを知っていますが、多次元配列は私を混乱させます。

4

2 に答える 2

15
echo $json['results'][0]['formatted_address'];

あなたがそれを正しく綴るならば、それは役に立ちます;-)

于 2012-05-24T10:31:47.807 に答える
8

...参考までに、JSONリクエストURLは、適切なものを返すために適切にフォーマットされている必要があります。そうしないと、NULL応答が返される可能性があります。

たとえば、JSON応答から経度と緯度の値を取得する方法は次のとおりです。

// some address values
    $client_address = '123 street';
    $client_city = 'Some City';
    $client_state = 'Some State';
    $client_zip = 'postal code';

// building the JSON URL string for Google API call 
    $g_address = str_replace(' ', '+', trim($client_address)).",";
    $g_city    = '+'.str_replace(' ', '+', trim($client_city)).",";
    $g_state   = '+'.str_replace(' ', '+', trim($client_state));
    $g_zip     = isset($client_zip)? '+'.str_replace(' ', '', trim($client_zip)) : '';

$g_addr_str = $g_address.$g_city.$g_state.$g_zip;       
$url = "http://maps.google.com/maps/api/geocode/json?
        address=$g_addr_str&sensor=false";

// Parsing the JSON response from the Google Geocode API to get exact map coordinates:
// latitude , longitude (see the Google doc. for the complete data return here:
// https://developers.google.com/maps/documentation/geocoding/.)

$jsonData   = file_get_contents($url);

$data = json_decode($jsonData);

$xlat = $data->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$xlong = $data->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};

echo $xlat.",".$xlong;

...また、同じコードを使用してGoogle Map iframeをハードコーディングし、v3 APIが動作しない場合はページに埋め込むことができます...こちらの簡単なチュートリアルをご覧ください:http://pmcds.ca/blog/ embedding-google-maps-into-the-webpage.html

を埋め込むこと は正確に正しいアプローチではありませんが、それが必要な解決策になる場合があります。

于 2013-05-08T21:15:37.507 に答える