階層データ・ソースのロード・オンデマンド

ロード・オンデマンド機能を使用して独自のフォーマットのために新しい IlvMapDataSource を作成するには、 IlvTilableDataSource クラスから継承する必要があります。このクラスは、適切なタイルを作成し、ロード・オンデマンドを効率的に使用するためにタイル・レイヤーの構成を行うのに必要なすべての手順を実行します。地図を分割する数の行および列を選択することができます。希望によってタイル機能を非アクティブにすることもできます。しかし、次の 2 つの抽象メソッドを実装しなくてはなりません。
protected abstract void createTiledLayers();
protected IlvMapRegionOfInterestIterator createTiledIterator(IlvMapLayer 
layer);
このセクションで説明されているコードをすべて含む Map Builder のデモ用ソース・コードについては、 <installdir> /jviews-maps89/samples/mapbuilder/index.html をご覧ください。

タイル・レイヤーの作成

createTiledLayers メソッドは、 IlvMapDataSourceIlvMapDataSource. その役割は、このデータ・ソースを構成するタイル・レイヤーを作成することです。例えば、データ・ソースが地図機能を異なるレイヤーにソートする場合、すべてのタイル・レイヤーはこのメソッドによって作成されなくはなりません。
このメソッドの実装例を示します。
protected void createTiledLayers() {
  // get the insertion layer of this datasource (i.e. the ‘root’ layer
  // of this data source, potentially containing children layers)
  IlvMapLayer mapLayer = getInsertionLayer();
  
  // Create a tiled layer to associated with this IlvMapLayer (refer to the 
chapter
  // on tiled layers) 
  IlvTiledLayer currentTiledLayer = new IlvTiledLayer(new IlvRect(),new
  IlvDefaultTileCache(),IlvTileController.FREE);

  // associate this layer with the IlvMapLayer
  mapLayer.insert(currentTiledLayer);
}

地図機能の読み込み

createTiledIterator メソッドは、指定された地域に位置する地図機能上に機能イテレーターを返します。レイヤーのタイル・ローダーは、画面上で利用可能になったときにタイルをロードするためにこのイテレーターを使用します。つまり、指定地域のみのタイルの地図機能を読み込みます。
このメソッドの実装例を示します。
protected IlvMapRegionOfInterestIterator createTiledIterator(IlvMapLayer layer) 
throws IOException {
  // IlvMapLayer mapLayer = getInsertionLayer();
  if (layer != mapLayer) {
    // the layer in parameter has nothing to do with this data source
    return null;
  }
  // Create your region of interest feature iterator here,
  // basically an iterator over map features in specified region
  MyRegionOfInterestIterator iterator = new MyRegionOfInterestIterator();

  // configure it as needed (we assume that there is a ‘configure’ method here 
for
  // clarity purposes)
  iterator.configure();

  // return it
  return iterator;
}
タイル・レイヤーの作成createTiledLayers メソッドによってマルチタイル・レイヤーが作成された場合、異なるイテレーターが各レイヤー (つまり、createTiledIterator() メソッドの layer パラメーター) 用に返されることがあります。詳しくは、「データのタイリング」を参照してください。