KML/ KMZ ファイルを読み込むのには 2 つの方法があります。
- IlvKMLReader インスタンスを直接使用する。この場合、KML 機能をグラフィック・オブジェクトにレンダリングするのに必要なコードをすべて書いて、それをマネージャーに追加しなくてはなりません。このクラスは、KML 機能を指定した KML ファイルまたはカタログから読み込みます。また読み込み機能で反復処理を行う IlvMapFeatureIterator インターフェースが実装されます。
- IlvKMLDataSource. これは、一時に上記操作をすべて実行する便利な方法で、地図のデータ・モデルにより統合されています。IlvKMLDataSource クラスは、マネージャーの KML データを含む 1 組のレイヤーを作成する便利な方法を提供しています。
このセクションで説明されているコードをすべて含む マップ・ビルダー のデモ用ソース・コードについては、
<installdir>
/jviews-maps89/samples/mapbuilder/index.html をご覧ください。
IlvKMLReader オブジェクトを使用して、KML 機能を読み込んでベクトル・データを作成するには、以下の手順に従います。
-
IlvKMLReader
インスタンスを KML カタログのパスから作成します。String KMLpath = " C:/maps/KML/places.kmz"; IlvKMLReader reader = new IlvKMLReader(KMLpath);
-
デフォルト・レンダラーを作成します。
IlvFeatureRenderer renderer = new IlvDefaultFeatureRenderer();
-
機能を反復し、適切な IlvFeatureRenderer でレンダリングして、マネージャーに割り当てます。
IlvMapFeature feature = reader.getNextFeature(); while(feature != null) { // Render map feature into the graphic object. IlvGraphic graphic = renderer.makeGraphic(feature,null); // Add this object on the first layer of the manager. manager.addObject(graphic, 0, false); feature = reader.getNextFeature(); }
IlvKMLDataSource を使用して、KML 機能を読み込んでベクトル・データを作成するには、以下の手順に従います。
-
IlvKMLDataSource
を作成します。String KMLpath = "C:/maps/KML_0606_ed8/KMLT"; IlvKMLDataSource source = new IlvKMLDataSource(KMLpath);
-
このデータ・ソースをビューのマネージャーに接続します。
source.setManager(getView().getManager());
-
KML データ・ソースをスタートします。
source.start();
メモ
JViews Maps は KML スタイルをサポートしません。これは、JViews Maps のスタイルがレイヤーに対して作成されているのに対して、KML のスタイルはオブジェクトごとに作成されており、互換性がないためです。