何か、やる気がしないとかペタンク作るとか言ってる間に、色々と面白いものが出てるし。
まぁ、今回俺が気にするのは「Google Maps API for Flash」の方。Flash Player 10は暫く兵どもにお任せすればいいと言うお考えですよ。
さて、Google Maps APIですが、実行には「API Key」が必要ですよね。アレって不便だな?と、そう思いませんか!?俺は思います。
だって、Flashと言うかFlex SDKだと、実験するのに
- asファイルをコンパイルし、swfファイルにする
- API Keyを含んだhtmlファイルを作る
- サーバにアップロードする
- アクセスして試す
なんて言う、超面倒臭いプロセスを踏まないと、サンプル一つ試せないわけですよ旦那!!
と言う事で、早速これをFlashDevelopの再生ボタン(ビルド+実行)1つで動かせるように頑張ってみました。
まず、ローカル環境でGoogle Maps API for Flashを試す時の問題になりそうなこと一覧。
- Playerを単独起動した場合、URLは無いけどAPI Keyは何使えばいいの?つか、使えるAPI Keyあんの?
- Google Maps API for FlashのサンプルだとAPI Keyはhtmlに埋め込んでるけど、どうやってswfに直接埋め込むの?
この2点かなと。
取り敢えず、2つ目の「swfにAPI Keyを設定する方法」は存在する。こんな感じでサンプルを改造すればよい。
- package com.google.maps.examples {
- import flash.events.Event;
- import com.google.maps.Map;
- import com.google.maps.MapEvent;
- import com.google.maps.MapType;
- import com.google.maps.LatLng;
- public class HelloWorld extends Map {
- public function HelloWorld() {
- super();
- key = "ABCDEF";//←ここでAPI Keyを設定。
- addEventListener(MapEvent.MAP_READY, onMapReady);
- }
- private function onMapReady(event:MapEvent):void {
- setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE);
- }
- }
- }
凄い簡単。実は、com.google.maps.Map
クラスにkey
と言うプロパティがあり、そこに設定すればよいだけ。ちゃんとリファレンスにも載っている。
で、これをコンパイルすればswf内にAPI Keyが埋め込まれるので、swf単体で試すことが出来る。
では、どのようなキーを使えばよいのか?教えてGoogleさん!
「GoogleMaps API For Flash ローカル」で検索!
すると、このようなページが見つかる。
Google Mapsをローカルサーバーでも利用できる、Google Maps API Keyの紹介です。
ローカルサーバーで表示できるGoogle Maps API Key | コリス
ここに書いてある、ローカルサーバ(http://localhost/)用のAPI Keyだが、実はこのローカルサーバ用API KeyをswfファイルにAPI Keyとして与えると、ローカル環境のみでGoogle Maps API for Flashが動くのだ!
追記:
・・・とまぁ、ローカルサーバ用のAPI Keyを探して設定してみたけど、実は
「有効なAPI Keyなら何でもOK」
と言うコトらしかった。試しに自分のサイト用のAPI Keyで試しても行けたわ。
何だよ、難しいこと考えて損した!
で、FlashDevelopの再生ボタンを押せば、見事Google Mapsが表示された!
おお?、意外と出来るもんだねぇ。
あ、ちなみに何か表示が違うぞ!?と思われた方は正解!
表示方法を、MapType.NORMAL_MAP_TYPE
からMapType.SATELLITE_MAP_TYPE
に変えてみた。
- setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE);