GeoTIFF リーダー (「GeoTIFF 形式」を参照) は、JViews Maps jar ファイルに含まれているオープン・ソース API である Batik Apache™
TIFF リーダーのようないくつかの拡張パッケージに基づいています。
GeoTIFF 形式は、TIFF (Tagged Image File Format) 形式を拡張したものです。TIFF 形式は、ファイルにタグを挿入することを可能にするイメージ・ファイル形式です。これらのタグは、ファイルに含まれているイメージに関する情報、解像度、ピクセルごとのサンプル数などを付与します。GeoTIFF 拡張形式では、イメージが表される座標系、その座標系のイメージの場所など、ファイルに含まれるイメージに関する地理情報を提供する、特定の地図作成用タグを追加します。
正式な TIFF の仕様は、http://partners.adobe.com/public/developer/tiff/index.html を参照してください。
GeoTIFF 形式に関する詳細は、次のサイトを参照してください。
このセクションで説明されているすべてのコードが含まれている、
マップ・ビルダーのデモ用ソース・コードは、
<installdir>
/jviews-maps89/samples/mapbuilder/index.html にあります。
IlvRasterGeoTiffReader クラス
IlvRasterGeoTiffReader クラスは、再投影可能でスタイリング可能なピクセル・オンデマンド・イメージを作成する GeoTIFF ファイル・リーダーです。
イメージ・リーダーの作成
まず、イメージ・リーダーを作成してから、読み込むイメージ・ファイルを追加します。
IlvRasterGeoTiffReader imageReader = new IlvRasterGeoTiffReader(); imageReader.addMap(tiffFile);
地理参照済み情報は、 IlvGeotiffReader を使用して Geo TIFF ファイルからデコードされます。
データ・ソースの作成
リーダーを作成したら、データ・ソースを作成し、データ・ソース・ツリーに挿入してマネージャー・プロパティーに統合させる必要があります。
IlvMapDataSource imageDataSource = IlvRasterDataSourceFactory.buildTiledImageDataSource(manager,imageReader,true,t rue,null); IlvMapDataSourceModel dataSourceModel = IlvMapDataSourceProperty.GetMapDataSourceModel(manager); dataSourceModel.insert(imageDataSource);
データの読み込み
これでデータの読み込みを開始することができます。
dataSourceModel.start();
データ・ソースを開始すると、必要なタイル・レイヤー、タイル・マネージャーと IlvRasterIcon インスタンスを作成して、ピクセル・オンデマンド機能および地理参照イメージの連続的な表示を管理します。
IlvGeotiffReader クラス
IlvGeotiffReader クラスは IlvMapFeatureIterator インターフェースを実装します。 getNextFeature メソッドは、
TIFFImage
オブジェクトを含む IlvMapImage ジオメトリーを返します。その後 TIFF イメージは、 IlvDefaultImageRenderer によってレンダリングされて IlvIcon を生成するか、またはデータ・ソースによってタイル IlvRasterIcon. TIFF リーダーは 2 つのパラメーターを引数として使用できます。2 つのパラメーターとは、TIFF ファイル名と、イメージが使用する座標系を表すタグと対応する WKT ストリングとの接続を含むファイルです。リーダーは、イメージに適切なタグがある場合に WKT 形式のイメージの座標系を取得し、 IlvWKTCoordinateSystemDictionary クラスで IlvCoordinateSystem を取得します。この座標系は、 getCoordinateSystem メソッドで使用できます。
ただし、デフォルトのコンストラクターは、TIFF ファイル名パラメーターを取得するのみで、Rogue Wave® JViews jar ファイル内にある WKT ファイル (wktdictionary.txt) を使用します。
このリーダーは、Maps リーダー・フレームワークに準拠するリーダーを使用する場合と同じ方法で使用可能です。
IlvGeotiffReader reader = new IlvGeotiffReader(tiffFile); IlvFeatureRenderer renderer = reader.getDefaultFeatureRenderer(); IlvCoordinateSystem coordSys = reader.getCoordinateSystem(); if (coordSys != null) manager.setNamedProperty(new IlvCoordinateSystemProperty(coordSys)); else manager.removeNamedProperty(IlvCoordinateSystemProperty.NAME); IlvCoordinateTransformation tr = IlvCoordinateTransformation.CreateTransformation(coordSys, coordSys); IlvGraphic g = renderer.makeGraphic(f, tr); manager.addObject(g, false);