rhacoでGoogle Map Geocodingする方法。Google map APIを使って住所から緯度経度を検出する。
住所から緯度経度を調べるサービス(http://www.geocoding.jp/ など)がありますが、サービスを通さずに簡単に住所→緯度経度を検出できます。実際はGoogleにどこも頼っているわけですし。どこもここを参照するわけです。Google map api なんでわざわざ他のサービスを利用するのかよく分からん。
というわけでrhacoを使って住所から緯度経度を調べる方法を下記にあげます。結構かんたんです。
require_once('__settings__.php'); Rhaco::import('network.http.Http'); Rhaco::import("tag.data.SimpleTag"); // 必ずGoogle map api keyを取得してください。 // http://code.google.com/intl/ja/apis/maps/signup.html $gmap_api_key = '上記のURLからそれぞれが取得すること'; $gmap_addr = '石川県金沢市'; // 住所指定 $gmap_sensor = 'false'; // センサーで取得した場合はtrue $gmap_output = 'xml'; // xml、kml、csv、jsonが指定できる。今回はxml $gmap_oe = 'utf-8'; // 必須ではないがエンコード指定 $url = 'http://maps.google.com/maps/geo'; $headers = array( 'User-Agent' => 'Mozilla/5.0' ); $params = array( 'api_key' => $gmap_api_key, 'q' => urlencode($gmap_addr), 'sensor' => $gmap_sensor, 'output' => $gmap_output, 'oe' => $gmap_oe ); $query_string = ''; foreach($params as $key=>$val){ $query_string .= $key.'='.$val.'&'; } list($head, $xml_content) = Http::request($url.'?'.$query_string, 'GET', $headers); $xml = new SimpleTag(); $xml->set($xml_content, 'coordinates'); print_r($xml->value);
かんたんに取得できますねー。