Google MAPS APIでのデバッグ

(注意!)この記事は、旧APIであるGoogle Maps API version 2を解説したものです。version 2の利用は推奨されていないので、意図的に旧バージョンの情報を探していない場合は、新しいバージョンの解説をご覧下さい。


ここでは、Google MAPS APIを使ってプログラムを書くときのデバッグ方法を説明したいと思います。

日本語コードに注意する

一番最初につまずくのは恐らく日本語の扱いだと思われます。 Google maps apiを使っているページは基本的に全てUTF8でなければなりません。

例えばWindowsのnotepadなどでページを作成していると自動的にSJISになってしまい、Google maps apiが動作しない場合があります。 ブラウザ依存します。例えばFirefoxだと動作するけどIEだとGoogle mapsが起動できないといったことが良く発生します。 Google mapsに関してはFirefoxの方がIEよりも動作が安定している感じがします。 (きっと使う機能に依存するのでしょうが。)

この問題の解決方法としては、1) 全てUTF-8で書く、2) Google mapsだけ別HTMLにしてIFRAME表示をする、3) 英語(ascii文字)だけで書く、などがあります。 (ascii文字だけだとUTF-8と全く同じになるので方法3は方法1であると言えますが、多分、普通はUTF-8とascii文字のマッピングと言われても興味が無いと思われるので分けてみました。)

本サイトでは、方法2を採用しました。 方法2を使っている理由は、「既に他のページをSJISで作ってしまっていて、ここだけUTF-8で書くのが面倒だから」です。 IFRAMEでHTMLを分けてしまう方法に関しては「Google Maps APIの単純な例」で説明しているので、そちらをご覧下さい。 IFRAMEで分けてしまえば、本体ページはSJISでもEUCでもJISでも大丈夫です。

Google maps を使っているHTML内でUTF8を使わずに日本語を表示するには、「&#数値;」で表現するという方法もあります。 日本語の文字列を変換するツールを作ってみたので、もしよろしければこちらをご利用下さい。 ただ、Google mapの中で日本語を使いたい場合には恐らくUTF-8で書くしか方法は無いのであきらめてUTF8で書いてください。

エラーを発生させている箇所を知る

これは、どちらかというとGoogle maps apiというよりもJavaScriptでのデバッグTIPSに近いです。 JavaScriptでプログラムを書いていると「何故か動かない、何故かエラーになる、どこでエラーになっているかわからない」という状況になりがちです。 「どこが悪いか」がわかればデバッグがずっと効率的になります。

IEでJavaScriptのエラーを表示するには「ツール > インターネットオプション > スクリプトのエラー毎に通知する」にチェックをします。 このチェックを入れると「どこが悪いのか」ということがわかるようになります。 また、必要に応じて「ツール > インターネットオプション > スクリプトのデバッグを使用しない」のチェックを外すのも良いでしょう。

Firefoxの場合には「ツール > JavaScriptコンソール」を選択して、JavaScriptコンソールを表示します。 このコンソールにはJavaScriptのエラーなどが表示されます。 結構便利です。

GLog.writeも便利です。

試しているコードが最新かどうか確認する

何度も同じページにあるJavascriptを試していると、ブラウザがjavascriptをキャッシュしていて実は昔のプログラムを何度も試したいたということがあります。 「何か変だな」と思ったら、ブラウザのキャッシュを削除したり、ブラウザからソースコードを表示して最新かどうか確認する、などの作業をお勧めいたします。

試行錯誤して慣れる

とりあえず、おおまかに私が使っているデバッグ方法を書きましたが、とりあえず試行錯誤して慣れるのが近道かもしれません。