IlvShapeDataSource クラスは、ESRI シェープ・ファイルを読む込む特殊なデータ・ソースです。
シェープ・ファイルの読み込み
シェープ・ファイルを読み込む最も簡単な方法は、専用データ・ソースを使用することです。
// Create the data source IlvShapeDataSource source = new IlvShapeDataSource(fileName); // affect the manager source.setManager(manager); // start the data source. try { source.start(); } catch (Exception e) { e.printStackTrace(); }
この例では、データ・ソースが単純に呼び出されて開始されます。グラフィック・オブジェクトを挿入するマネージャーを指定するには、 setManager メソッドを使用する必要があります。グラフィック・オブジェクトは、シェープ・ファイルに含まれている機能に応じて、 IlvMapPolyline, IlvMapGraphicPath または IlvMapPoint のインスタンスになります。さらに、データ・ソースは IlvMapLayer. IlvMapStyle を指定すると、このレイヤーでグラフィック・オブジェクトのレンダリングを変更できます。
シェープ・ファイルのフィルタリング
読み込むシェープ・ファイルに .dbf ファイルが関連付けられている場合は、setfilter メソッドを使用して、そのファイル内容のサブセットをフィルタリングすることができます。例えば、以下のコードは、「NAME」プロパティーの値が「usa」のレコードだけを読み込みます。
source.setFilter(new IlvSplitEqualsFilter("NAME", "usa", true);
グラフィック・オブジェクト・レンダリングの変更
以下の例では、このデータ・ソースによって作成されたグラフィック・オブジェクトのレンダリングを、データ・ソースの
IlvMapLayer
のスタイルを変更することによって、変更する方法を示しています。// create the data source IlvShapeDataSource source = new IlvShapeDataSource(fileName); source.setManager(manager); // Assuming that the geometry of the shape file are areas. IlvGraphicPathStyle style = new IlvGraphicPathStyle(); source.getInsertionLayer().setStyle(style); style.setPaint(Color.blue); try { source.start(); } catch (Exception e) { e.printStackTrace(); }
シェープ・ファイルに含まれているオブジェクトのタイプが不確かな場合は、レイヤー・スタイルの
setAttribute
メソッドなどを使用することができます。IlvMapLayer layer = source.getInsertionLayer(); layer.getStyle().setAttribute(IlvPolylineStyle.FOREGROUND,Color.black); layer.getStyle().setAttribute(IlvPolylineStyle.BACKGROUND,new Color(1,1,0.8f));