このセクションで説明されているコードをすべて含む Map Builder のデモ用ソース・コードについては、
<installdir>
/jviews-maps89/samples/mapbuilder/index.html をご覧ください。
すべてのラスター (イメージ) データ・ソースには、共通 API があります。独自のデータ・ソースを作成するには、読み込むデータの種類の IlvRasterAbstractReader を作成し、タイリングされるイメージ・データ・ソースを構築するためにこのリーダーを使用する必要があります。
ラスター・リーダー・クラス
さまざまなイメージ形式のラスター・リーダー・クラスを以下に示します。
GEOTIFF IlvRasterGeoTiffReader DTED IlvRasterDTEDReader GTOPO30 IlvGTopo30Reader Non-geo-referenced images(*) IlvRasterBasicImageReader Images from OpenGIS compliant Web Map Servers IlvWMSReader
(*) 非地理参照イメージは、地理参照される必要があります。「非地理参照イメージの地理参照」を参照してください。
ラスター・リーダーの作成
ラスター・リーダーを作成して、読み込むイメージ・ファイルをすべて追加するには、次のコードを使用します。
タイリングするデータ・ソースの作成
リーダー用にデータ・ソースを作成するには、次のように行います。
IlvRasterDTEDReader reader = new IlvRasterDTEDReader(); for(int i=0;i<fileName.length;i++) { reader.addMap(fileName[i]); } IlvMapDataSource DTEDDataSource = IlvRasterDataSourceFactory.buildTiledImageDataSource(manager,reader,true,true,null); DTEDDataSource.setName("name in data source panel");
IlvTiledRasterDataSource は IlvRasterDataSourceFactory によって戻され、バックグラウンド・スレッドでイメージ読み取りを実行します。
非地理参照イメージの地理参照
非地理参照イメージを地理参照させるために、経度および緯度イメージ限界を設定することができます。
reader.setImageBounds(0,-Math.PI,Math.PI/2,Math.PI,-Math.PI/2);
また、より複雑な数学的変換を計算して、それをリーダーに設定することもできます。
reader.setInternalTransformation(trans);
メモ
非地理参照イメージ・リーダーは addMap の複数呼び出しには対応していません。
OpenGIS 準拠 Web Map Server からのイメージ
このセクションでは、OpenGIS® Web Map Server (WMS 標準) に関する情報を提供します。この国際規格では、地理情報から空間的に参照された地図を動的に生成するサービスの動作を規定しています。サーバーによって提供される地図の説明を取得し、地図に表示されている機能についてサーバーに照会る操作を規定します。この規格は、実際の機能データおよび範囲データ値の取得には適用されませんが、グラフィカル形式の地図の画像レンダリングには適用可能です。これらの機能は、Web Feature および Web Coverage Service によって提供されています。
基本的な WMS では、限られた数の定義済みスタイルのみ機能に適用させることができます。ユーザーが独自のスタイルを定義することを可能にするメカニズムが、OGC Styled Layer Descriptor Implementation Specification に定義されています。SDL が有効になった WMS は、Web Feature Service から機能データを取得し、地図をレンダリングするためにユーザーによって提供される明示的なスタイリング情報を適用します。
ISO/TC 211 は、Web Map Server 用の規格も定義しています。『ISO 19128』を参照してください。
WMS イメージのインポート
JViews Maps は、WMS サーバーからのイメージのインポートをサポートしています。
WMS データ・ソースを作成するには、以下のコードを使用します。
URL url = new URL("http://geo.compusult.net/scripts/mapman.dll? Name=weather&REQUEST=GetCapabilities"); IlvWMSReader reader = new IlvWMSReader(url); IlvWMSDataSource source = new IlvWMSDataSource(reader); source.setManager(manager);