JViews Maps パッケージでは、MapInfo 交換ファイル (MIF) 形式のデータを読み込む際に必要なクラスがすべて提供されています。これらのクラスに加え、JViews Maps パッケージは特定の MIF オブジェクトをレンダリングする際に必要な
IlvGraphic
クラスも提供しています。MapInfo 交換ファイルの読み込みに使用するクラスは以下のとおりです。
IlvMIDMIFReader クラス
このクラスでは、MIF ファイル名と MID ファイル名を指定して両方のファイルを読み込みます。MID ファイル名を
null
に設定すると、属性は読み込まれません。MID ファイル名が有効な MID ファイルに一致する場合、属性はそのファイルから読み込まれ、リーダーから返された IlvMapFeature に付加されます。IlvMIDMIFReader reader = new IlvMIDMIFReader("example.mif", "example.mid"); IlvMapFeature feature = reader.getNextFeature(); while(feature != null) feature = reader.getNextFeature();
IlvMIFReader クラス
このクラスは、コンストラクターに MIF ファイル名またはリーダーを提供する MIF ファイルを 1 つ読み込みます。次に反復処理でファイルの
IlvMapFeatures
を取得できますが、読み込み中の MIF ファイルに関する次のような情報を取得することもできます。- このファイルに含まれるジオメトリーをレンダリングするデフォルトの機能レンダラー。
- このファイルで使用する文字エンコード
- ファイルのジオメトリーを表す座標系。
MIF ファイルに何も指定されておらず、MapInfo 仕様でジオメトリーが地理座標系にあると見なされる場合でも、リーダーが返す座標系は
null
になります。IlvMIFReader reader = new IlvMIFReader("example.mif"); IlvAttributeInfoProperty info = reader.getAttributeInfo(); if(info != null) { System.out.println("Attributes info : "); for(int i = 0; i < info.getAttributesCount(); i++) { System.out.println("Name " + info.getAttributeName(i)); System.out.println("Class " + info.getAttributeClass(i)); } } IlvCoordinateSystem cs = reader.getCoordinateSystem(); if(cs != null) System.out.println("The coordinate system is " + cs.getName()); else System.out.println("Assuming a geographic coordinate system"); String encoding = reader.getCharset(); System.out.println("Char set is " + encoding);
IlvMIDReader クラス
このクラスは、MID ファイルを読み込みます。MIF ファイルに提供されている MID リーダー ( IlvAttributeInfoProperty) の 2 番目の引数を作成するには、あらかじめ対応する MIF ファイルを開いておく必要があります。
IlvMIFReader reader = new IlvMIFReader("example.mif"); IlvAttributeInfoProperty info = reader.getAttributeInfo(); IlvMIDReader mid = new IlvMIDReader("example.mid", info); IlvFeatureAttributeProperty prop = mid.getNextRecord(); while(prop != null) prop = mid.getNextRecord();