2012-05-01 9 views
1

これは初めてのJSONの作業ですが、明らかに何か間違っています。Google Geocodeからlatとlongを返そうとしています

シンプルなjsonを解析する方法を調べましたが、Googleのジオコードの深いレベルでは、私を捨ててしまうかもしれません。私は私の値を取得しようとしていますHERESにどのよう

$getJSON = "http://maps.googleapis.com/maps/api/geocode/json?address=" . str_replace(" ", "", $_POST['postcode']) . "&sensor=false"; 
      $contentJSON = file_get_contents($getJSON); 
      $Geocode_array = json_decode($contentJSON, true); 

      $lat = $Geocode_array[results][address_components][geometry][location][lat]; 
      $lng = $Geocode_array[results][address_components][geometry][location][lng]; 

、必要であれば、私はJSONコードを投稿することができます。

答えて

3

あなたの配列キーを引用してみてください。引用符がなければ、PHPはそれらのキーが未定義の定数であると仮定しています。また、JSONの結果を正しくトラバースしていないこともあります。試してみてください:

$lat = $Geocode_array['results'][0]['geometry']['location']['lat']; 
$lng = $Geocode_array['results'][0]['geometry']['location']['lng']; 

Google Maps APIを使用すると、複数の結果が配列に表示されます。私はすぐ上のコード(インデックス0)の最初のものを参照しています。開発中に便利なことは、print_r()を使って連想配列をPHP出力バッファに出力することです。それが私がそれを理解した方法です。

print_r($Geocode_array); 
+0

私はJSONレベルに間違っていますか? – TomK89

+1

複数の問題が発生している可能性があります。私はいくつかのテストをしてみましょう、私は何を見つけるのかを教えてあげます... – Asaph

+1

ありがとう、あなたの助けが大変ありがたいです。 – TomK89

関連する問題