Google Maps APIで「まわせる地図」を作ってみた

http://labs.zkdesign.jp/rotatable/

地図の見方って人それぞれで、自分の場合はわりと素直に「上が北」でなじめるのですが、人によっては「自分の進行方向が上」とかのほうがわかりやすい人もいる。また、場所によっては、地図の向きを変えるだけで行き方がすごくわかりやすくなる場所というのもある気がする。
といったわけで、ネット上の地図サービスも地図の回転できればいいのにな、と前から思ってたのですが、たまたまGoogle Maps API for Flashがリリースになってたので、試しに回転出来る地図、というのを作ってみました。まだ検索とかできないし、画像荒いし、UIもちゃんとしてないですが、ひとまずの技術プレビューということで。

Google Maps API for Flashについてのメモ

  • ドキュメントの例だと、com.google.maps.Mapをextendsするようになってるけど、別にvar map:Map=new Map()でも大丈夫。
  • 同じくサンプルではflex使う例が出てるけど普通にActionScriptプロジェクトで問題なし。
  • サイズの指定はwidth/heightとかでなくてsetSize()メソッドで。
  • ジオコーディング(住所などの文字列から緯度、経度の値を取得)も、com.google.maps.services.ClientGeocoderを使うと一応できるけど何か色々ハマった(下記参照)
ジオコーディングまわりでハマったところ

一応、基本的には↓みたいな感じのコードで動くのですけれども、、

geocoder=new ClientGeocoder();
geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS,onGeoSuccess);
geocoder.geocode("New York");

//listener method
private function onGeoSuccess(e:GeocodingEvent):void 
{
	var mark:Placemark=e.response.placemarks[0];
	if(mark){
		map.setCenter(mark.point,14);
	}
}

ハマったところがいくつかあって、

  1. Mapが準備できてMapEvent.MAP_READYイベントがコールされた後にじゃないと「new ClientGeocoder()」しようとしてもエラーが出てダメだった。
  2. geocode()メソッドはどうやら今のところ日本語では検索できないみたい?。
  3. ローカル再生の時だとうまく結果を取得できなかった→サーバにアップしたらちゃんと結果が帰ってきた。