Virtual Earthを利用した地図アプリケーション(その2)

日経ソフトウェアの記事(作ってビックリ!Visual Basic, こだかかおる、pp.130、2008年7月号)に基づいて、VBの代わりにwxPythonで同じものを作っている。

JavaScriptの関数を、関数が定義されているファイルの外からどう実行すればいいのかが検討もつかなかったのでいろいろと試してみた。
すると、ve.htmlファイルを直接ブラウザで読み込んでURLを入力する部分に

javascript:setMapStyle('a')

と入力したところ、地図の表示が変わることに偶然気づく。
ああ、こうやればいいのだな、と感心しつつ、ファイルMainFrame.pyのmapStyle関数のところを以下のように書き換えた。

def mapStyle(self, style):
    buf = "javascript:setMapStyle('%s')" % style
    self.ie.LoadUrl(buf)

こうして起動すると、”道路”、”航空写真”、”ハイブリッド”のボタンで地図の表示が切り替わる。”概観図”は3D表示を意味していて、特定の都市でしか機能しないようであるからかこのボタンを押しても何も起こらない。

下の図は、”ハイブリッド”表示の場合。

同様に、"ZoomIn"、"ZoomOut"ボタンを押したときの処理も行えるように、MainFrame.pyの中の関数を以下のように修正する。

def OnZoomOut(self, event):
    buf = "javascript:setZoomLevel(0)"
    self.ie.LoadUrl(buf)

def OnZoomIn(self, event):
    buf = "javascript:setZoomLevel(1)"
    self.ie.LoadUrl(buf)