何気にGoogleMapsAPI使うの初めてだったりする。
今回「グルーポンなう」作るときに使いました。
単純にAPI叩いてるだけなのでメモ程度に。

前回の記事 【CakePHP】位置情報の取得と、2点間の距離計算のコンポーネントに追加すると便利かも。

というわけで、

App/controllers/components/geo.php

class GeoComponent extends Object {
  public function addr2geo($addr=""){
    $url = sprintf("http://maps.google.co.jp/maps/geo?q=%s&output=json&key=%s",
                   urlencode($addr),
                   'GoogleMapsAPIKEY');
    $res = file_get_contents($url);
    $data = json_decode($res);
    $geo = $data->Placemark[0]->Point->coordinates;
    return array('lng' => $geo[0], 'lat' => $geo[1]);
  }
}
あ、データ取得できなかった時とかの処理は別途書いてね。。

App/controllers/foo_controller.php

class FooController extends Controller {
  var $name = 'Foo';
  var $components = array('Geo');

  function index () {
    $addr = '東京都新宿区新宿三丁目38-1';
    $geo = $this->Geo->addr2geo($addr);
    echo $geo['lat']; //緯度
    echo $geo['lng']; //経度
  }
}


位置情報をサービスに使うとおもしろいね。
今後もいろいろ作っていければいいなー。