0 レビュー
2 回答
phpはGoogleの方向からjsonデータを解析します
Googleのルートからjsonデータを解析しようとしていますが、どの値にもアクセスできないようです。これがphpコードです;
$url = "http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los+Angeles&sensor=false";
$jsonfile = json_encode(file_get_contents($url));
$jsondata = json_decode($jsonfile);
echo $jsondata->distance;
ここに(いくつかの)jsonデータが返されます:
{ "routes" : [ { "bounds" : { "northeast" : { "lat" : 41.90085000000001, "lng" : -87.62979000000001 }, "southwest" : { "lat" : 34.052360, "lng" : -118.243560 } }, "copyrights" : "Map data ©2012 Google", "legs" : [ { "distance" : { "text" : "2,015 mi", "value" : 3243390 }, "duration" : { "text" : "1 day 8 hours", "value" : 114318 }, "end_address" : "Los Angeles, CA, USA", "end_location" : { "lat" : 34.052360, "lng" : -118.243560 }, "start_address" : "Chicago, IL, USA", "start_location" : { "lat" : 41.87811000000001, "lng" : -87.62979000000001 }, "steps" : [ { "distance" : { "text" : "0.2 mi", "value" : 269 }, "duration" : { "text" : "1 min", "value" : 34 }, "end_location" : { "lat" : 41.87570, "lng" : -87.62969000000001 }, "html_instructions" : "Head \u003cb\u003esouth\u003c/b\u003e on \u003cb\u003eS Federal St\u003c/b\u003e toward \u003cb\u003eW Van Buren St\u003c/b\u003e", "polyline" : { "points" : "eir~FdezuOhFIF?HAdFG" }, "start_location" : { "lat" : 41.87811000000001, "lng" : -87.62979000000001 }, "travel_mode" : "DRIVING" }, { "distance" : { "text" : "0.2 mi", "value" : 328 }, "duration" : { "text" : "1 min", "value" : 51 }, "end_location" : { "lat" : 41.875680, "lng" : -87.63366000000002 }, "html_instructions" : "Turn \u003cb\u003eright\u003c/b\u003e onto \u003cb\u003eW Congress Pkwy\u003c/b\u003e", "polyline" : { "points" : "[email protected]" }, "start_location" : { "lat" : 41.87570, "lng" : -87.62969000000001 }, "travel_mode" : "DRIVING" }, { "distance" : { "text" : "14.0 mi", "value" : 22564 }, "duration" : { "text" : "17 mins", "value" : 1031 }, "end_location" : { "lat" : 41.873870, "lng" : -87.903170 }, "html_instructions" : "Continue onto \u003cb\u003eI-290 W\u003c/b\u003e", "polyline" : { "points" : "_zq~Fj}[email protected][email protected]@[email protected]@[email protected][email protected]@xA[email protected][email protected][email protected][email protected]@[email protected][email protected][email protected][email protected]\\[email protected][email protected][email protected]?|[email protected]`[email protected]@[email protected][email protected]?`[email protected][email protected][email protected][email protected]@[email protected][email protected]@^@[email protected]@[email protected][email protected][email protected][email protected][email protected]|AHxLBVJ~CLfC\\|[email protected]\\dFTxCXhDVzBNtCFlEB|[email protected]^[email protected][email protected][?|@?\\@[email protected]@[email protected]@T|@[email protected]@[email protected]^vA^jCR`[email protected]?LHfBH`[email protected]|[email protected]?`@L|[email protected]@@dKDbO?jEDdHZjHR`[email protected]`@[email protected][email protected]@@[email protected][email protected]`[email protected]@}@[email protected]~[[email protected]@sB`[email protected]@aBt\\EdA?FcAbU?XCrCKnC?zBR|LB`@B\\[email protected]@[email protected]@[email protected]|ERrEJhTH|GLvJ^[email protected]|HX`[email protected]`[email protected]`B?`[email protected]|CAbCRnT?BJ`[email protected]@[email protected]@[email protected][email protected]@[email protected]|[email protected]@[email protected][email protected]`@[email protected]`[email protected]@[email protected][email protected]|[email protected]@O`C]~DWzB[lB[fB][email protected]@[email protected]@[email protected]@[email protected][email protected]@W|@[email protected]]vBMhA[[email protected]" }, "start_location" : { "lat" : 41.875680, "lng" : -87.63366000000002 }, "travel_mode" : "DRIVING" }, { "distance" : { "text" : "140 mi", "value" : 224957 }, "duration" : { "text" : "2 hours 13 mins", "value" : 8008 }, "end_location" : { "lat" : 41.53651000000001, "lng" : -90.32902000000001 }
返されるエラーは次のとおりです。
( ! ) Notice: Trying to get property of non-object in C:\wamp2\www\phpAcademy\GoogleDirectionsApi\TMP25mnfz82oi.php on line 8
Call Stack
# Time Memory Function Location
1 0.0004 366752 {main}( ) ..\TMP25mnfz82oi.php:0
わからない
0
レビュー
答え :
解決策:
GoogleはすでにJSONを返しているため、最初にエンコードする必要はありません。次に、「距離」キーは応答構造の奥深くにあります。
$origin = "Rome, Italy";
$destination = "Venice, Italy";
$key = "YOUR-OWN-KEY";
$url = "https://maps.googleapis.com/maps/api/directions/json?origin=".urlencode($origin).",IL&destination=" . urlencode( $destination) . "&sensor=false&key=" . $key;
$jsonfile = file_get_contents($url);
$jsondata = json_decode($jsonfile);
echo $jsondata->routes[0]->legs[0]->distance;
わからない
0
レビュー
答え :
解決策:
すべてのデータをjsonまたは配列形式で簡単に取得できます:
$ url = " https://maps.googleapis.com/maps/api/directions/json?origin=28.704059,77.102490&destination=30.719059,76.748704&sensor=false "; >
$ jsonfile = file_get_contents($ url);
$ jsondata = json_decode($ jsonfile);
echo $ jsondata-> routers [0]-> legs [0]-> distance;
このエラーが発生した場合:
キャッチ可能な致命的なエラー:クラスstdClassのオブジェクトを文字列に変換できませんでした
出力print_r()関数にplzを使用するよりも
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。