ロード・オンデマンドの制御

ビジビリティー・フィルターの使用によるロード・オンデマンドの制御

IlvMapStyleController クラスによって提供されている動的スタイルを使用したくない場合、マネージャー・レイヤーのタイル表示を制御するためにスケール・ビジビリティー・フィルターを使用することができます。
スケール・ビジビリティー・フィルターがタイル・レイヤーに設定されている場合、このレイヤーは、マネージャー・ビューの縮尺設定が指定限度内の場合に表示されます。そうでない場合は、このレイヤーは非表示になります。マネージャー・ビューのズーム倍率によって、タイル・レイヤーが表示されると、表示タイルは、自動的にロックされメモリーに読み込まれます。同様に、ビューの倍率が特定の値を超えているためにタイル・レイヤーが非表示になると、表示タイルのすべてのロック設定は解除され、それらのタイルは削除されます。
通常、スケール・ビジビリティー・フィルターを使用して、最小縮尺値から最大縮尺値までのズーム倍率でロード・オンデマンドを有効にします。1/1,000,000 の縮尺でスキャンした地図の場合を考えてみましょう。レイヤーを 1/2,5000,000 から 1/500,00 の範囲の縮尺で表示するように可視性フィルターを設定できます。

タイル・ロック・フィルターの設定

IlvTileLockFilter クラスを使用して、タイルがビューで可視になった場合に動的に読み込みを回避できます。そのためには、以下のメソッドを使用して、IlvTileLockFilter オブジェクトをタイル・コントローラーに関連付けます。
タイル・コントローラーにロック・フィルターがある場合は、タイルがビューで可視になるたびにロック・フィルターの isLockAllowed メソッドを呼び出します。このメソッドが false を返すと、タイルのカウンターは増加しません。
ロック・フィルターを使用すると、既にロード済みのタイルを可視にしている間は、小縮尺で表示されているデータを読み込めないようにできます (例えば、地図を大幅に拡大した場合)。

API を介したタイルのロード

ロード・オンデマンドはイベント駆動型の機構で、ズームやパンなどのユーザー操作に従って地図データをロードまたはアンロードします。ただし、lockTile() メソッドを使用することもできます。例えば、頻繁に表示する地図領域に対応するタイルをプリロードしたり、タイルをアンロードできないようにできます。
下記の lockTile() メソッドでは、タイル・ロック・カウンターが増加します。
タイル・ロック・コントローラーが 0 の場合、タイルはメモリーにロードされ、IlvTileController.unlockTile メソッドなどでロックが解除されるまでアンロードされません。

ビューの全可視タイルの更新

IlvManagerView で表示中のすべてのタイルを即座に更新することが必要になる場合があります。その場合には、 updateView メソッドを使用できます。このメソッドは、それまでロード・オンデマンド機構で無視されていたビューを再び有効にする場合に便利です。