ケータイ向けのGoogle Mapsなるものがあるらしいと言う話を、
先日公開された「Google Static Maps API」を使って、ケータイ上でGoogleMapを表示してみたいと思います。
ke-tai.org > Blog Archive > 「Google Static Maps API」を使って携帯でGoogleマップを表示する
を読んで知った。名前は「Google Static Maps」。
で、画像をimgタグで拾ってこれるんなら、ActionScript使っても読み込めるんじゃない?と思ったので、早速実験してみた。
上が普通に画像をimgタグで読み込んだもの(をダウンロードして別名保存したもの。直接Google Mapsから画像取ってくると、imgタグにAPI Key丸見えなのが気になるな・・・)。
で、下がFlash版で、上と同じ画像を読み込んでるけど、あえて表示領域を縦横共に半分にしてみた。で、ドラッグするとGoogle Mapsみたいに地図が動いて、非表示領域が出てくる。範囲は上の画像分で、ズーム機能は無し。
でまぁ、結果を書くとこんな感じ。
- 画像を読み込むLoaderオブジェクトを、stageに直接addChildする→OK
- 画像を読み込むLoaderオブジェクトを適当なSpriteにaddChildし、それをstageにaddChildする→ムリっぽい
- 読み込んだ画像をBitmapDataとして取り出し、Papervision3DのBitmapMaterialに渡してみる→ムリっぽい
何でこうなるのかは不明だし、もしかしたら何か画像とは関係ないエラーで失敗してるのかも知れんが、結論を言うと出来るのは「画像をLoaderで読み込み、stageに直接addChildする」ことだけだった。原因は良くはわからないけど、
ActionScript を使って 外部ドメインの画像を読み込むときの注意点を調べてみた。
AS3 で調べたけど、AS2 でもセキュリティの機構自体は同じ(だと思う)。
AS で別ドメインの画像を読み込むときの注意点 – てっく煮ブログ
辺りが関係してるかもしれない。
というわけで、制約事項をまとめるとこんな感じかな。
- 画像サイズは512×512まで
- 1日に読み込める画像は1000種類まで
- 画像は表示は出来るけど、加工したりPapervision3Dに使ったりは出来ない
トータルで見ると使い勝手はそんなに良くないけど、制限された範囲内(1000種類以内)でなら上手くFlashとGoogle Mapsを連携できると言っても言いと思う。例えば、
Flash 内で GoogleMap を使う方法はいくつかありますが(参考記事:「Flash と GoogleMaps を連携させるライブラリ」)、今僕は AS3 製作にて AFComponents の「UMap(AS3.0)」を使っています。Showcase でも紹介されていますが「東京マラソン」の公式サイトでも使われているようです。
trick7.com blog: UMap(AS 3.0) 覚え書き
で紹介されていた東京マラソンくらいなら、画像は1000種類以内に収まるかもしれないので、UMapを使わなくてもGoogle Static Mapsで行ってみる価値はあるのかもなーと思う。
まぁ、画像の使い方に制限事項が多いから、工夫が必要な部分は多いと思う。Flashのセキュリティ関連について俺より詳しい、例えば引用元にもさせてもらった「てっく煮」のnitoyon氏が本気になれば制限事項についてもっと詳しくわかるんだろうが、俺にはムリだな。