グリッド・レイヤー

このセクションで説明されているコードをすべて含む マップ・ビルダー のデモ用ソース・コードについては、 <installdir> /jviews-maps89/samples/mapbuilder/index.html をご覧ください。

IlvAbstractBaseGrid クラス

IlvAbstractBaseGrid 基本クラスには、サブクラス IlvMGRSGrid および IlvLatLonGrid. これは、追加されているグラフィック・オブジェクト (IlvGraphic インスタンス) を描画する代わりに、地図の現在のズーム・レベルに適用されているグリッドを表示するマネージャー・レイヤーです。
このベース・グリッドは IlvManagerViewDecoration インターフェースも実装します、これにより画面上にグリッドを表示させることが可能になりますが、印刷物には印字されません。

IlvMGRSGrid クラス

IlvMGRSGrid クラスは、1 組の自動適用 MGRS 標準グリッドおよびラベルを地理ビュー上に表示します。このグリッドは、グリッド・ゾーンの一覧 (UPS ゾーンと UTM ゾーンのどちらか)、およびそれらのサブグリッド (100,000m、10,000m、1,000m) を表示します。各グリッドまたはサブグリッドは、現在の領域の標準化された MGRS 名を使用してラベリングされます。
MGRS グリッドを作成して、すべての地理参照マネージャー・ビュー (つまり、 IlvCoordinateSystemProperty をサポートするあらゆるビュー) 上に追加することができます。例えば、すべての MRGS ゾーンをビューの修飾として含む MRGS グリッドを追加するには、以下のように処理します。
IlvMGRSGrid grid = new IlvMGRSGrid();
IlvMGRSGridZone.addAllZones(grid);
view.addViewDecoration(grid);

IlvLatLonGrid クラス

IlvLatLonGrid クラスは、1 組の自動適用グリッド・ラベルを地理ビュー上の緯度および経度ラインに沿って表示します。グリッドが自動適用型の場合、各連続的な緯度・経度ライン間のステップは現在のビューの縮尺に依存します。
MGRS グリッドを作成して、すべての地理参照マネージャー・ビュー (つまり、 IlvCoordinateSystemProperty をサポートするあらゆるビュー) 上に追加することができます。例えば、緯度・経度グリッド・レイヤーを作成するには、次のように処理します。
view.getManager().addLayer(new IlvLatLonGrid()-1);
デフォルトでは、 IlvLatLonGrid は各グリッドの正方形の角にポイントのみを作成します。地図を非線形に変換する座標系を使用している場合 (正射影、UTM 図法など)、グリッドをよりスムーズに見せるために各グリッドの正方形の中間点の数を増やすことができます。
lgrid.setSmoothness(4);

特定のグリッドの描画

独自のグリッド・システムを実装する最も簡単な方法は、空の MGRS グリッドでスタートして、独自のゾーンをそれに追加していく方法です。この例については、マップ・ビルダー GridManager クラスを参照してください。

グリッドの地図レイヤーへの統合

グリッドはマネージャー・レイヤーとして実装されるので、必要な作業はこれらを IlvMapLayer.
この地図レイヤーを作成し、スタイリングし、地図レイヤーのツリー・モデルに統合する必要があります。
IlvMapLayerTreeModel ltm = 
IlvMapLayerTreeProperty.GetMapLayerTreeModel(view.getManager());
 IlvMapLayer mapInsertionLayer = new IlvMapLayer();
 mapInsertionLayer.setStyle(new IlvGridStyle());
 ltm.addChild(null, mapInsertionLayer);
これでグリッド・マネージャー・レイヤーをこれに統合することができます。
mapInsertionLayer.insert(grid);
IlvDelayedDecoration マネージャー・レイヤーを使用してグリッドをカプセル化することもできます。グリッドを迅速に移動させたりズームしたりすると、簡素化されたバージョンのグリッドが使用され、より素早く表示されます。グリッドの移動またはズームを停止すると、フルグリッドが表示されます。
IlvDelayedDecoration delayedGrid = new IlvDelayedDecoration(200);
delayedGrid.setDecoration(grid);
   mapInsertionLayer.insert(delayedGrid);

IlvGridStyle クラス

IlvGridStyle クラスは、グリッドを表示するときに使用されます。以下の属性を定義します。
グリッド・スタイリング・プロパティー
プロパティーの名前
内容
GRID_COLOR
グリッド・ラインを表示するのに使用される Color
TEXT_FONT
グリッド・ラベルの Font
TEXT_COLOR
グリッド・ラベルを表示するのに使用される Color
OUTLINE_COLOR
グリッド・ラベル輪郭の Color