Google Static Maps APIを使ったアプリを作ってみた
Google Static Maps APIを見てすぐにOpenLaszloで何か作ってみたいと思った。
Google Static Maps APIのよいところは、GIFのイメージが直接取得できるので、JavaScriptが不要なのはもちろん、クロスサイトドメイン制約に引っかからないこと。
逆にあまりよくないところは、APIキーを取得しないとならないし、その上Google Static Maps APIで作ったイメージを公開するとAPIキーも公開されちゃうところ。
APIキーは、何度でも取得できるのであまり大事にするほどのものでもなさそうだけど、ちょっと気持ち悪い。
とりあえず動くものができたのでkorelab Map α版としました。
しかし、誤算が2つあった。
まず1つ目は、携帯で使うことを想定して作っていたのに携帯で使えそうにないというところ。
OpenLaszloではFlash7形式とFlash8形式のswfファイルが作成されるのですが、携帯のFlash Lite2はFlash7相当なのでFlash7形式で動くものにしないとならない(はず)。しかし、GIFファイルがNativeサポートされているのはFlash8形式の方だけで、Flash7形式では肝心の地図が表示されない。
実際のところ、Flash Lite2対応の携帯を持っていないので試していません。誰か試してみてコメントくれると非常にうれしい。
お試し用のURLは以下の2つ。
SWFの直指定 http://wp.korelab.com/korelab_map.swf
OBJECTタグで指定 http://wp.korelab.com/korelab-map/
もう1つの誤算は、地名などから緯度経度を取得する際に使うGoogle Maps APIのGeocoding Serviceが使えなかったところ。
クロスドメイン制約で使えない。
予測できたはずのことなのですが、Google Static Maps APIがクロスドメイン制約なしで使えることで、なんとなくGeocodingサービスも使えるような気がしてしまった。
そこでここの情報(非公式だが使えるYahoo! Japan Geocoder API)を元にYahoo Japanの情報を使わせてもらうことにしました。
しかし、それでは海外に行けないので、他のGeocoding APIを探していたらGetNamesというのを見つけました。ここの情報量はすごい。800万件を超える地図情報を持っているらしい。しかも日本語の地名も通る。
korelab Map α版では、地名等を入力してSearchボタンが押されると、まずGeoNamesで探して、見つからなかったらYahoo Japanで探すようになっています。
候補が複数見つかった場合には、最初に見つかったものをそのまま表示しています。
このユーザインタフェースをどうするかが今後の課題。