開発環境上の理由でPHP5.3環境
Mac OS 最新
Chrome 最新
PHPのfile_get_contentsなどを利用して、GETパラメータで住所を送ったら、google geocodeAPIを利用して経度緯度を返すファイルを作りたいのですが
直接下記にアクセスしたら最後のconsoleで経度緯度の取得はできているのを確認したのですが
geocoder.php?add=東京都庁
geocoder.php
PHP
1<meta charset="utf-8"> 2<script async defer src="https://maps.google.com/maps/api/js?key=APIKEY&callback=initMap"> 3</script> 4<script> 5 function initMap() { 6 var latlng=new Object(); 7 var geocoder = new google.maps.Geocoder(); 8 var address ="<?php echo urldecode($_REQUEST['add']);?>"; 9 //中心表示 10 geocoder.geocode( 11 { 12 'address': address, 13 'region': 'jp' 14 }, 15 function (results, status) { 16 console.log(status) 17 if (status == google.maps.GeocoderStatus.OK) { 18 latlng['lat']=results[0].geometry.location.lat(); 19 latlng['lng']=results[0].geometry.location.lng(); 20 } 21 } 22 ); 23 console.log(latlng) 24 return latlng; 25 } 26</script> 27
別のPHPファイルから下記のように取得を試みましたが返り値が空になります。
どのようにすれば取得できるでしょうか
access.php
PHP
1$header = Array( 2 "Content-Type: application/x-www-form-urlencoded", 3 "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 4); 5$data = http_build_query( 6 array( 7 'add' => '東京都庁' 8 ) 9); 10$options = array('http' => 11 array( 12 'method' => 'GET', 13 'header' => implode("\r\n", $header), 14 ) 15); 16$lat_long=file_get_contents(dirname(_FILE_)."/geocoder.php" . '?' . $data,false,stream_context_create($options)); 17var_dump($lat_long);
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。