ilog.views.maps.format.shapefile パッケージには、次のクラスが含まれています。
- このクラスは、 IlvMapFeatureIterator インターフェースを実装し、
.shp
、.dbf
、および.shx
ファイルを読み込めるようにします。シェープ・ファイルでは、使用する投影図法に関する情報がないため、このリーダーは地理参照されません。このリーダーでは以下の 2 つの専用リーダーを使用します。この getNextFeaturegetNext
メソッドは、これらの専用リーダーで生成した情報を単一地図機能にマージします。 - このクラスは、 IlvMapFeatureIterator インターフェースを実装します。このリーダーは、
.shp
ファイルのみを読み取ります。 - IlvDBFReader:
.dbf
ファイルを読み取ります。 - IlvShapeFileIndex:
.shx
ファイルを読み取ります。 - IlvShapeSpatialIndex: 地図空間インデックス
.idx
ファイルを読み取ります。
IlvSHPReader クラス
シェープ・ファイルに保存されるジオメトリーは、必ずしも 2D オブジェクトとは限りません。シェープ・オブジェクトを構成する各点は、測地データ、または測地データと標高に関連付けることができます。
測地データはインデックス 0 の地図機能属性に格納される、タイプ IlvAttributeArray の属性に格納されます。
以下は、測地データに関連付けられる形状のタイプです。
POINTZ
POLYLINEZ
POLYGONZ
MULTIPOINTZ
POINTM
POLYLINEM
POLYGONM
MULTIPOINTM
標高はインデックス 1 の地図機能属性に格納される、タイプ IlvAttributeArray の属性に格納されます。
以下は、測地データと標高に関連付けられる形状タイプです。
POINTZ
POLYLINEZ
POLYGONZ
MULTIPOINTZ
JViews Maps パッケージには、3D のレンダリングに不可欠なタイプである
MULTIPATCH
の形状オブジェクトを表す定義済みのジオメトリーがないため、これらは無視されます。ただし、クラス IlvShapeSHPReader
をサブタイプ化して、この振る舞いを変更できます。形状オブジェクトは保護されたメソッドで読み込まれるため、リーダーを修正して新しいジオメトリーを含める場合も、最小限の作業で済みます。IlvDBFReader クラス
このリーダーは、
.dbf
形式のファイルを読み込む場合にのみ使用します。また、次のようなファイルの反復処理に使用できます。try { IlvDBFReader reader = new IlvDBFReader("myFile.dbf"); IlvFeatureAttributeProperty attributes = reader.getNextRecord(); while (attributes != null) { // Process attributes. ... attributes = reader.getNextRecord(); } } catch (Exception e) { e.printStackTrace(); }
リーダーが URL ではなくファイルから作成されている場合は、記録番号を指定することで地図機能の属性に直接アクセスできます。
reader.readRecord(index);
IlvShapeFileReader クラス
次のいずれかの方法でインスタンス化できます。
.dbf
ファイル、および.shp
ファイルの名前を指定。- 上記の 2 つのファイルの URL を指定。
IlvDBFReader
およびIlvSHPReader
オブジェクトを直接指定。これは、例えば派生したIlvSHPReader
オブジェクトを使用する場合などに役立ちます。