KML リーダーとライター

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