HTML+JavaScriptで作れるWindows7デスクトップアプリの基礎知識などを参考にしてVista以降で利用できるWindows7のデスクトップガジェットを初めて作ってみた。
"JavaScript"で作れるということは......先ごろAPIキーが要らなくなった
"Google Maps JavaScript API"をガジェット化できるんじゃないか?ってことで。
出来たwww、禁断のコラボレーション?
普通は
"Bing Maps"を使うべきだろう
マウスなどのハンドラが競合するのか動作が少し変ですが、移動・縮小・拡大・地図種別変更などは問題なく出来ました。ただストリートビューはちょっと無理っぽい。
"YouTube"などの埋め込みなどもちょっと試してみましたが、ガジェットの移動などの制御が出来なくなってしまうみたいなので、flashとの相性はあまりよくなさそう。
ガジェットってWPFやらSilverlightで無いと出来ないと思っていたので、目からウロコ(MSのイベントでもお世話になっている小高さんありがとう)。この機能はかなりすごい。もう少し奥に突っ込んで何か作ってみたいと思っています。とりあえずまずはAjax系だろうなぁ
JavaScriptなのにローカルリソースにアクセス出来ると言う事は......あんなことやこんなことが。そういった意味でやはり素性のわからないガジェットをインストールするのは避けた方が良いでしょう。
<ガジェットの追記>
日本語だとutf-8にしなければならないとされていますが、マニフェストファイル(gadget.xml)はutf-8にしなければならないようですが、その他ソースファイルの文字コードはutf-8以外でも大丈夫そうでした。もしかしたらマニフェストファイルのxmlも先頭に文字コード宣言をすればいけるかも......(試してませんが)
<余談>
"Google Maps"の住所検索で郵便番号を入れるとちゃんとその郵便番号の住所を示しますが、郵便番号と住所って1対1じゃないということも近頃知った(従ってGoogleは最初の1つ目を示す)。
そんなわけで先日ちょっと気になって郵便番号を検索できるAPIがないか探したところ、先頭に出てくる
ここを利用しようとしたんですが、XML応答の方は、XML構造に問題があるためか"JavaScript"の"XMLHttpRequest"の応答である"ResponseXML"ではエラーになって取得できなかったので、中間プロキシを噛ませてAjaxで取得できるものを作ったりもしました。
その超簡単テストサンプルが
これ。例えば"0680546"などと入力すると1つの郵便番号に複数の住所が帰ってきますね。