なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

PHPで経度・緯度の位置情報を取得する~file_get_contentsできないとき向け~2017年

f:id:nazuna_0124:20170309204724p:plain

  • GoogleMapを利用したい!
  • 位置情報は経度と緯度で設定が必要。
  • Googleにgetで投げればjsonで返してくれるサービスがある。
  • file_get_contentsで出来るって書いてあるのにできない!!!


という方(ちょっと前のわたし)向けの更新。

やや古い程度の情報が軒並みだめだったので、表題に年を入れてみたりしました。


コードの結論はこちら。

<?php

$address = "ディズニーランド";
//$url = "http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false&region=India";
$url= "https://maps.googleapis.com/maps/api/geocode/json?address=$address&sensor=false&region=India";

$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$res = curl_exec($ch);
curl_close($ch);
$resData = json_decode($res);
echo "lat:" , $resData->results[0]->geometry->location->lat;
echo "<br>";
echo "lng:",$resData->results[0]->geometry->location->lng;
echo "<br>";
echo "ファイルの中身<br>";
echo var_dump($resData);

?>


もし、これでもだめなときはphp.iniの設定確認です。

allow_url_fopen = On になってることと

opensslがコメントアウトされてないかをチェック。


NetBeans + xampp環境では設定済みで大丈夫でした!


file_get_contentsで動かない時は、curl関数を使うまでは

すぐに見つかったんですが、試しても動かず。


いくつか回って動くのを見つけた次第でございまする。


先人の皆様に敬礼!