PHPからGoogle Maps APIを使う方法の紹介です。JavaScriptからの方法はけっこう情報があるのですがPHPからは情報が少ない?常識なんかな?
まずはGoogle Maps APIのサイトです。https://developers.google.com/maps/documentation/geocoding/start?hl=ja
ここのページの下の方に「APIキーの取得」というボタンがありますので、そこからAPIキーを取得しておきます。取得したAPIキーを下のPHPの$myKeyにペーストしてください。無料の場合は1日に2500回の利用ができるようです。
使用制限についてはこちらのページで確認してください。
PHPのコードは次の通り。
api02.php
<?php mb_language("Japanese");//文字コードの設定 mb_internal_encoding("UTF-8"); //住所を入れて緯度経度を求める。 $address = $argv[1]; $myKey = "Googleから取得したAPIキー"; $address = urlencode($address); $url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . $address . "+CA&key=" . $myKey ; $contents= file_get_contents($url); $jsonData = json_decode($contents,true); $lat = $jsonData["results"][0]["geometry"]["location"]["lat"]; $lng = $jsonData["results"][0]["geometry"]["location"]["lng"]; print("lat=$lat\n"); print("lng=$lng\n");
特に説明するところも無いんですが一応説明すると
引数で受け取った住所(建物名とかでもGoogleで検索できるものならオッケー)とAPIキーを入れたURLアドレスを作ります。$addressは日本語名(全角文字)だとURLにならないのでurlencodeでエンコードしています。
受け取ったデータはjson_decodeで配列に入れてます。
$lat = $jsonData["results"][0]["geometry"]["location"]["lat"]; $lng = $jsonData["results"][0]["geometry"]["location"]["lng"];
これで緯度経度を取得して表示して終わり!
ローカルのPHPから実行できるのでローカルにあるデータベースでなんかやりたい時には使えるかな、というかそういうことをしたいなと。