WebMapプラットホームとしてのSVG Mapの最も重要な機能がハイパーレイヤリングです。この機能はW3CのSVG1.1において標準化されました。しかしそのSVG1.1仕様書では、この機能を中心に整理された説明がなされていません。そこで、その機能の振る舞いを明確にするため、この章ではハイパーレイヤリング機能を整理して説明します。
はじめに:
ハイパーレイヤリングはWWWの基本理念を継承した機能です。その意義の理解のためにWWWを再確認したいと思います。
WWW(World Wide Web)は、インターネットに接続された世界中(World Wide)のコンピュータの情報を蜘蛛の巣(Web)状に連結することで、インターネットを巨大なデータベースとして使えるようにしようという基本理念のもとで設計された情報プラットホームです。
これを実現するために、WWWには高度な機械処理の代わりに人が理解できることを優先することで、単純でしかも高い汎用性(融通性ともいえる)を持った連携性を提供するという設計思想が与えられました。それを実現するのが、HTML・ハイパーテキスト・URLです。
- 人が理解するための文書表現情報:HTML
書式付きの文書情報。補助的に(挿絵として)グラフィックスデータを貼り付けることもできる - ユーザインターフェースによる情報連結:ハイパーテキスト
ハイパーリンクが設置されたテキスト。ハイパーリンクには機械が理解できる意味は与えられない - 文書単位の単純なアクセス手段:URL+HTTP
DBMSのような高度な問い合わせ言語を用いず、インターネット上のファイルへのアクセス手段のみ
ハイパーレイヤリングの目的:
従来のWWWが扱ってきた文書は書式付きの文字情報でした。一方地理情報の主要な文書は図形によって地理的特徴を抽象する「地図」です。
また、従来のWWWが利用する情報連結手段はハイパーテキストでした。一方地理情報では複数の情報を地図上に(合成)重畳し総覧することで情報の関連を知る手法が使われます。このように、地理情報はその特性から従来のWWWと異なる表現と連携の方法が採られてきました。
WWWを拡張することで、このような地理情報で用いられる表現と連携の手法を利用可能にしたのがハイパーレイヤリングです。ハイパーレイヤリングは、ハイパーリンクによって指し示された複数の地図レイヤーを重畳して表現することで、地理情報を連結します。
ハイパーレイヤリングの仕様:
ハイパーレイヤリングはSVGデータ形式によって表現されます。その意味は、地図の表現(図形による地図表現)だけではなく、連携の機能(ハイパーレイヤリング)をもSVG形式が担うということです。ちなみにHTMLでも文書表現(書式付文書)と連携(ハイパーテキスト)を一つのデータ形式が担っています。
ハイパーレイヤリングは以下の手順でSVG Map Profileに準拠したブラウザ上で実行されます。
①ハイパーレイヤリングを指示するSVGデータ(コンテナ)を読み込む
②同データに記載されるハイパーリンクに従って、地図レイヤーデータにアクセスする
③取得した地図レイヤーデータを合成して、所望の地図表現を得る
#これらの処理が、サーバではなくブラウザで実行されることと、それをWWWのオープンスタンダード化していることが、私どもがSVG MapこそがWeb Mapであると言う所以です。
#巷にはハイパーリンクによる情報連携ができなかったり、(連携できても、単なるハイパーリンクではない複雑な連携手順を使っていたり)、できているようでサーバでしか実行できなかったり、オープンスタンダード化していなかったり(独自のブラウザ(最近ではJavascriptによる)を使うものが多い)する、ただWebの通信環境を間借りしただけの地図サービスが多く存在しますが、それらを"Web Map"と呼ぶのには疑問が残ります。 ご参考
ハイパーレイヤリングを実施するXML要素:image
image要素はSVG1.0から規定されている要素であり、そのハイパーリンク属性(xlink:href)で指示された他のグラフィックス文書をSVG文書に貼り付ける機能を提供します。
そこで、このimage要素によって重畳する文書を指定することで、ハイパーレイヤリングが実施されます。ハイパーレイヤリングのための地図レイヤーのハイパーリンクが設定されたSVGデータを「コンテナ」と呼ぶことにします。
また、重なりの順序はSVG文書の描画順序に従います。すなわち、そのimage要素より前に記述された要素は下に、後に記述された要素は上に重なります。
ハイパーレイヤリングのための必須のメタデータ:地理座標
個々のSVG文書は個別の座標系を持っていますが、地図では地理的な位置を合わせて重畳する必要があります。そのため、重畳される各々のSVG文書には全て地理座標が設定されていなければなりません。地理座標の設定に関する仕様はこちらに記載されています。
ハイパーレイヤリングのために省略が許容される属性:width,height
標準のSVG仕様では、image要素のwidth,height属性は省略できません。一方、ハイパーレイヤリングの第一の目的は地図を正しく重ね合わせることです。これは地理座標が設定されたSVG地図であれば、それらの属性が無くても実行できるでしょう。そこで、より簡単にハイパーレイヤリングを使えるように、これらの属性を省略可能とします。
なお、x,y属性を含め、width,height属性を省略せず記述した場合には、別に規定される新たな機能が実行されます。
サンプル:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:go="http://purl.org/svgmap/" viewBox="122.93 -45.52 20 20" >
<metadata>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:crs="http://www.ogc.org/crs" xmlns:svg="http://www.w3.org/svg" >
<rdf:Description>
<crs:CoordinateReferenceSystem rdf:resource="http://purl.org/crs/84" svg:transform="matrix(1.0,0.0,0.0,-1.0,0.0,0.0)" />
</rdf:Description>
</rdf:RDF>
</metadata>
<image xlink:href="http://www.svg-map.org/svg/basemaps/cyberJpN35.svg"/>
<image xlink:href="http://www.svg-map.org/wms/smap.svg?dataset=bosai"/>
</svg>