地図機能の処理

地図機能は、ソース・ファイルから読み込まれた地図データを表示するオブジェクトです。地図機能は、そのジオメトリー、そのジオメトリーが表現される座標系、およびその属性という 3 つの主要情報フィールドを持っています。例えば、地図機能が町の場合、その属性は町の名前と居住者数になります。地図機能は、アプリケーションのグラフィック表示方法とはまったく独立しています。したがって、丘の頂上を示すポイントなどは、十字、円、またはアイコンなどのさまざまなグラフィック・オブジェクトで、正確に表現した方がわかりやすくなります。
地図機能には、以下の情報が含まれています。

地図機能のジオメトリー

各地図機能にはジオメトリーがあります。地図機能のジオメトリーとは、形状や位置に関する情報です。
JViews Maps では、地図機能のジオメトリーは、 IlvMapGeometry クラス (ilog.views.maps パッケージ内) で定義されます。ilog.views.maps.geometry パッケージでは、地理情報システム (GIS) 間の相互運用性を確保するために、OpenGIS Consortium が定めた「シンプル地図機能」ジオメトリー仕様でモデル化された、さまざまな定義済みジオメトリーが提供されています。ただし、このパッケージのクラスは、機能性の面で、このモデルを厳密に遵守しているわけではありません。このパッケージは、単純な機能を提供しており、主に描画を目的としています。しかし、このクラスを使用すると、Oracle Spatial などのマップ・サーバーのデータを変換する際に非常に便利です。
また、このパッケージには、イメージ、ラスターおよびテキストをより簡単に処理するための追加ジオメトリーが含まれており、新しいジオメトリーで拡張することもできます。

地図機能の属性

各地図機能には属性を持たせることもできます。地図機能が町の場合、その属性はその町の名前、または居住者数になります。例えば、属性はグラフィカル・レンダリングに使用できます。「色付き線のレンダラーの作成」では、地図上で等高線を表す折れ線の色は、海抜属性で定義されます。
属性は、クラス IlvFeatureAttribute に属します。それらの属性は、ilog.views.maps パッケージの以下の 2 クラスに格納されています。
以下のコード例では、 IlvMapFeature オブジェクトの属性を一覧にして画面に表示します。
public void dumpAttributes(IlvMapFeature feature)
 {
   IlvAttributeInfoProperty info = feature.getAttributeInfo();
   IlvFeatureAttributeProperty attributes = feature.getAttributes();
   
   // Attributes are not mandatory in a feature.
   if ((info == null) || (attributes == null)) {
     System.out.println("This feature has no attribute");
     return;
   }
   
   for (int i = 0; i < info.getAttributesCount(); i++) {
     String name = info.getAttributeName(i);
     IlvFeatureAttribute attribute = attributes.getAttribute(i);
     System.out.println("The attribute " + name +
                        " takes the value " + attribute.toString());
   }
 }
整数、小数点値、ストリングなどを表すかどうかによって、属性のタイプは異なります。 IlvFeatureAttribute クラスのすべての定義済み属性は、ilog.views.maps.attribute パッケージにあります。