GeoTIFF リーダー

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);