2014/06/09 STAFF BLOG

 パノラマビューワーの特徴の一つに、自在に拡大縮小できるという点があげられます。制作の過程として複数枚の画像を合成するという手順があるため、画像の解像度が高すぎて画面内に表示しきれないという理由もありますが、元来文化的にもパノラマは拡大・縮小と縁が深い装置でした。様々な観光名所のパノラマポイントに登ると、大抵の場所には望遠鏡が置かれています。望遠鏡を除けば、普通の目線では見えない細部が手に取るように近くに現れ、視界を望遠鏡から外すと世界が豆粒のように小さく見えます。こうしたマクロな視点とミクロな視点を縦横無尽に移動できることが、パノラマの快楽の一つであると言えます。
 今、我々にとって最も身近な拡大縮小ソリューションは、何と言ってもGoogle Mapsです。地球規模の視点からご近所の視点まで、縦横無尽に移動することができるという操作感覚は、我々の地図体験に革命をもたらしました。※1
 Google Mapsを使ってみると、このエンジンを使用してオリジナルの画像を表示することはできないのかと思いつくこともあるでしょう。実は、GoogleMaps APIにはカスタムマップという機能があり、ユーザがオリジナルの地図を表示することができます。
 GoogleMapsの原理はタイリングです。高解像度の画像をすべて読み込むのではなく、必要な部分だけを読み込むことで高速なレスポンスを実現しています。タイリングという技術は極めてポピュラーな手法で、KRPanoでもタイリングを導入することで、高速なロードが出来るようになっています。また皆さんもよくご存知のJPEGも、実はタイリングで画像を圧縮しています。(JPEGではブロックと呼んでいます)
 タイリングで画像を読み込むためには、事前に画像をタイルに分割しておく必要があります。またズームに応じて精細度を変えておくとより効率的になります。タイル化自体はPhotoshopなどを使用して手作りすることもできますが、高解像度の画像になるととても手作業では追いつきません。GoogleMaps用のタイルファイルについては、GMapImageCutterというツールが無料で公開されていますので、これを使用するのが現実的です。

fig01
11768 x 5884のEquirectagler画像を分割すると5461タイルにもなる

 GMapImageCutterには簡易的なHtmlを生成する機能も備わっているので、アップロードすればそのままWebページにカスタムマップを表示することができます。

GMICで生成したカスタムマップのサンプル

 GoogleMapと同じ操作感覚でパノラマを表示することが出来ました。GoogleMapsAPIがそのまま使用できますので、この画像の上にマーカーを載せたり、線分を描いたりと様々な応用が考えられます。過去の事例では、社内のフロアマップを表示し、社員の在籍状態を表示するというソリューションを手がけたことがあります。
 次回は、IT業界の巨人がプロデュースした、もうひとつの拡大縮小ソリューションを紹介します。


※1余談ですが、そのはるか以前、ライターの荻窪圭氏がQuickTimeVRで高解像度古地図を表示していました