シン・クライアント用のタイル・イメージの事前生成

IlvManagerTiler クラスは、地図をレンダリングし、ディスク上の指定された位置に異なるスケール・レベルでタイル・イメージとして保存するユーティリティー・クラスです。これらのイメージは、シン・クライアント・サーバーのキャッシュを埋めるのに使用することができます。オフライン・タイル生成は、クライアントが要求したときに、イメージを作成およびキャッシュする必要がないため、サーバーの初期反応時間は速くなります。同じ理由から、サーバーのスケーラビリティーも増加させます。
地図用タイル・イメージを生成する最初の手順は、シン・クライアント・パラメーターが地図で設定されているのを確認することです。『JViews Maps - Map Builder の使用』の「シン・クライアント・パラメーターの設定」を参照してください。マップ・ビルダーは、2 つの IlvNamedProperty インスタンスを地図に追加します。これらのパラメーター名は、IlvMapTileGen IlvMapTileGeneratorConstants クラスで定数として定義されます。
  • TILE_SIZE_PROPERTY は、生成されるタイルのサイズを持つプロパティーの名前です。サイズはピクセル単位で測定されます。例の値は、256 ピクセルです。
  • SCALE_LEVELS_PROPERTY PROPERTY は、タイルを使用して地図がレンダリングされるさまざまな縮尺を表す double 値の配列を保持するプロパティーの名前です。
これらのパラメーターが地図に設定されていない場合は、createTiles() メソッド呼び出しで明示的に指定する必要があります。その後、IlvManagerTiler インスタンスを作成し、以下のコードを使用して適切なパラメーターを指定し、 createTiles メソッドを呼び出します。
IlvManagerTiler tiler = new IlvManagerTiler();
long maximumDiskSpace = 10000000; // 10 Mbytes
String mapFilename = "MyMap.ivl";
File outputFolder = new File("output");
tiler.createTiles(mapFilename,null, outputFolder, maximumDiskSpace);
// Null is passed as the region so as not to limit the tiling process.
複数のスケール・レベルで、対象領域を指定せずに広範囲を網羅する地図用にタイルを生成すると、何百万ものタイルが生成されてしまいます。何ギガバイトものメモリーを必要とし、場合によっては完了するまでに長時間を要します。
これを避けるには、次の処理を行います。
  • 適度なディスク・スペースの限度を指定します。プロセスは限度に達すると直ちに停止します。
    あるいは
  • シン・クライアントから要求されそうな地域を対象として、これらの地域のイメージのみを生成します。
対話式にタイルを生成するグラフィカル・ツールが、次にコード・サンプルとして提供されています。 <installdir> /jviews-maps89/samples/tilegeneration/src/TileGenerator.java
メモ
thin client background プロパティーがスタイルで true に設定されている地図レイヤーのみが、タイル・イメージとしてレンダリングされます。ラベリング・レイヤーなどの動的レイヤーは、サーブレットによって動的に生成されているので、背景レイヤーとしてマークされません。