ハウツー:Google Map Image Cutterを使って大きな画像を公開する

 GMIC(Google Map Image Cutter)は、自動的に画像を分割し、タイル状に配置し、Google Mapsブラウザ内で表示できるようにするフリーソフトウェアのプログラムだ。GMICを使用すると、パノラマ写真や非常に大きな画像をウェブページに埋め込むことができるので、閲覧者は好きなだけ細部を拡大表示したり、マウスを使ってパンしたりスクロールしたりすることができる。

 GMICバージョン1.1は、ロンドン大学UCL(University College London)GMICプロジェクトのページからダウンロードすることができる。GMICは、UCLのCentre for Advanced Spatial Analysis(先端空間分析センター)が開発する5つのソフトウェアプロジェクトのうちの一つだ。GMICパッケージはLGPLの下にライセンスされているが、ダウンロード用のリンクを取得するためにはユーザ情報についてのアンケートに記入する必要がある。なおGMICを利用するためにはバージョン1.4.2かそれ以降のJavaが必要だ。

GMIC
動作中のGMIC(クリックで拡大)

 GMICのパッケージには、Javaの.jarファイル、シェルスクリプトのラッパー、使用方法の説明などの書かれたreadme.txtファイルが含まれている。とは言え使い方は簡単で、シェルスクリプトを実行してアプリケーションを起動し、タイル化したい画像ファイルを開き、Create(作成)ボタンをクリックするだけだ。

 GMICは、256ピクセル×256ピクセルの大きさの、画像をもっとも「ズームアウト」した状態のイメージ画像を作成する。256×256というのはGoogle Mapsのタイルの1枚の大きさだ。またGMICは、画像をもっとも「ズームイン」した状態のイメージ画像を構成するために、もともとの解像度通りの大きさの画像を256×256の大きさに分割して、多数のタイル画像を作成する。そしてGMICは、最大と最小の間に何ステップのズームレベルがあるのかを自動的に算出する。

 ズームの各ステップは縦横2倍の倍率に相当するので、1ステップズームするたびに4倍の枚数のタイルが必要になる。したがって(例えば2048×2048の大きさの画像などで)4ステップのズームレベルがある場合には、1+4+16+64=85枚のタイルが必要となる計算になる。なおプレビューウィンドウ右端のスライダーを調整すると、画像のもともとの大きさよりも大きく引き伸ばしてズームレベルをさらに上げることができるが、当然ながら品質を上げることはできない。

 Create(作成)ボタンをクリックするとGMICは、最大/最小/各中間ズームレベルのための256×256の大きさのタイル画像群を作成する。すべての画像は、元画像の名前を基にした名前が付けられた新たなフォルダ内に保存される。また、必要なGoogle Mapsコードが含まれる、同じような規則で名前が付けられたHTMLファイルも作成される。このHTMLファイルはどのブラウザを利用しても開くことができ、画像のどこに対しても自由にズーム/パンを行なうことができる。

 GMICは高速だ。私が最初に試したとき、6998×7416の大きさの画像から1,365枚のタイルを作成するのに20秒もかからなかった。Huginを使用して元画像の再配置/つなぎ合わせ/融合を行なったときにかかる時間と比べたら、非常に高速と言える。

ウェブで公開する

 そのままでも画像のGoogle Mapsをハードディスクから見ることはできるが、それらの画像をウェブ上で公開するためには、Google Maps APIキーを使用する必要がある。有効なGoogleアカウントを持っているのならば、Googleのウェブサイトで登録して無料のGoogle Maps APIキーを取得することができる。

Zoom
100%に拡大した画像(クリックで拡大)

 利用規約では、あなたが作成したGoogle Mapsを訪問者が利用する際に課金してはならないと規定されているため、これで一攫千金を狙う計画は立てない方が良いだろう。またAPIキーには、一日に利用可能なgeocodeのリクエスト数に制限がある。ただしこれについては、GMICはgeocoderを使用していないので心配する必要はないだろう。

 登録ページに記述されている通り、Googleは各Google Maps APIキーに対応するURLについて非常に独特の規定を設けているので、規定を丁寧に読むようにしよう。手短に説明すると、APIキーをドメイン名(example.orgなど)や特定のホスト名(www.example.orgなど)やさらにはディレクトリ(www.example.org/blogなど)にまで対応させることができるのだが、これは可能な限り広範囲に指定した方が良いということだ。例えばexample.orgというURLで登録した場合には、www.example.orgでもpictures.example.orgでも利用することができるが、www.example.orgとして登録した場合には、pictures.example.orgでは利用できなくなってしまう。

 APIキーの準備ができたら、GMICが生成したHTMLファイルの中にAPIキーをコピー&ペーストする。具体的には、HTMLファイルの中の最初の <script> タグのsrc要素の中にPUTAPIKEYHEREという文字列があるので、それをAPIキーで置き換えるようにする。

 APIキーをHTMLファイルに記入したら、タイル画像のディレクトリとHTMLファイルとをウェブサーバにアップロードしよう。アップロードが完了すれば、作品を世界中の人たちと共有することが可能になる。

 GMICが生成するHTMLページは非常に味気なく、画像とGoogle Mapsのコントロールがあるだけだ。通常のウェブサイトの場合は、GMICが生成したHTMLファイルの適切な部分を、他のHTMLファイルの中にコピー&ペーストすれば良い。一方GMIC画像をブログやCMSなどのページの中に埋め込みたい場合には、いくらか作業が必要になるかもしれないことを覚悟しておこう。

 例えばWordPressでは、特定の記事の中に特定のJavaScriptを埋め込むことは難しい。WordPressの文書にはJavaScriptの取り扱いに関する大掛かりな説明が用意されているが、GMIC画像を別ページにしても構わないのであればそうした方が良いだろう。その方が手間が少なくて済むうえ、ブラウザウィンドウの全領域を利用して訪問者を喜ばせることができるだろう。

 パノラマ写真作成プログラムに関して残された最後の課題は、画像を何らかの意味のある方法で共有するという問題だ。QuickTime VRのような非フリーのビューアや様々なJavaアプレットが存在するが、どのプラットフォームでも利用でき、特別なクライアントサイドのプラグインなどが必要なく、使い方も分かりやすいという観点から、Google Maps APIを活用するという方法は非常にシンプルだと言える。

 とは言え、GMICがパノラマ写真の共有にのみ役立つと考えるのは間違いだ。オンラインで非常に大きな画像を公開したいというあらゆる状況において、GMICを役立てることができる。必要なときにだけ転送される小さく分割したタイルを用意しておくと、画像が大きければ大きいほど、帯域の節約になる。パノラマ写真であれ巨大な地図であれ高解像度の図表であれ、GMICを利用すると実に簡単にウェブで公開することができる。

NewsForge.com 原文