このコンテンツを表示するためには、無償の Adobe Flash Player が必要です。ダウンロード

« Elevation (2): javascript 版    チリのサッカー選手 »

Google Maps for Adobe AIR(Flex SDK で作成する)

| Category=Flex

きのうグーグルが掲題の機能をリリースしたので試行。デスクトップにグーグルマップ。

AIR01

これは、CSVファイルのデータ(この例では3行のみ)をパースするもの。
マーカーは、ドラッグ&ドロップで移動させることができ、

AIR02

そこで保存ないし別名で保存すれば、当該CSVファイルも以下のように更新される、という AIR アプリ。

AIR03

Google のデモギャラリーに掲載された、「Map CSV Parser」のソースをコピペしただけのもの。
「本日のToDo」あるいは「本日の営業:ToGo」とか、デスクトップで使えますかね。

以下、作り方の覚え書き。

まず AIR アプリ作成にあたり、

  • 有償の「FlexBuilder」か
  • 無償の「Flex SDK」か

を入手。当然ながら無償の後者をダウンロード(現行の最新版は3.2。前者の有償のほうは、Google のチュートリアルを。)

そのほか必要なもの:

  • Google Maps API for Flash の 無償 SDK 一式(現行の最新版は /lib/map_flex_1_8.swc を同梱)
  • Adobe AIR 本体(当然無償、現行の最新版は1.5)
  • デモギャラリーのソースをコピー
  • 先駆者の方々の記事を検索
  • ドブに捨てる時間と暇
  • お好みによりコーヒー、ビール、タバコ
  • 叱られても気にしない無神経さ など

で、私は次のページを参考にさせていただいた。こちらを読めば、ほとんど出来る。

 joomla - Adobe AirをFlex3-sdkで開発

Google Maps のケースとして補筆:

デモのソースから、MapTextEditor.mxml と MapTextEditor-app.xml をコピペしてC:\直下に置いた。また Flex SDK をC:\直下で「flex」というフォルダに、Google SDK をC:\直下で「SDK」というフォルダに置いた。
mxml をコンパイルしてSWFファイルを生成する際に、

C:\flex\bin\amxmlc C:\MapTextEditor.mxml -library-path+=C:\SDK\lib\map_flex_1_8.swc

というように -library-path.... を加える(1行で書く)と、MapTextEditor.swf が出来上がる。

失敗談として補筆:

次いでAIRの動作を adl で確認する局面、MapTextEditor-app.xml を adl で呼ぶと叱られる。

error while loading initial content

(意訳:「何やっとんのじゃコラ」)

よくよく見ると、グーグルのサンプルソースの2行目、

<application xmlns="http://ns.adobe.com/air/application/1.0">

1.0 なので整合しない(最新版の1.5をダウンロードしたせい)。だから末尾を、...application/1.5"> に書き換え。

続・失敗談として補筆:

pfxファイルを作成した後、いよいよ air ファイルの作成。次のようにコマンドを打ち込む(一行で)。

C:\flex\bin\adt -package -storetype pkcs12 -keystore C:\MapTextEditor.pfx -storepass ****** C:\MapTextEditor.air C:\MapTextEditor-app.xml C:\MapTextEditor.swf

すると、また叱られる。

absolute path: C:\MapTextEditor.swf
usage:
adt -checkstore SIGNING_OPTIONS
adt -certificate -cn .......

(意訳:「きちんとコマンド書きやがれコラ」)

最後のSWFファイルの記述は、絶対パスを使ってはならないそうで。

 お試しダウンロード(AirMap.zip、サンプルCSV同梱)

別の試作品:シンプル東京地下鉄路線図 de AIR

Air

※追記: マップに MapTypeControl や ZoomControl を付けたら挙動がおかしくなる。map_flex_1_8.swc のバグだと思う。おそらく、カンファレンス「Adobe MAX 2008」(サンフランシスコ)開催に間に合うよう強引にリリースした、という側面もあるのだろう。

※追記の追記(27 Nov): 上記のバグを Fix した map_flex_1_8a.swc がリリースされ、MapTypeControl や ZoomControl が正常に機能するようになった。

※追記の追記の追記(26 Jan 2009): 大阪版の地下鉄路線図も追加した。

※追記の追記の追記の追記(27 Feb 2009): 地震マップも追加した。

Adobe AIR Gallery

« Elevation (2): javascript 版    チリのサッカー選手 »