OpenGIS® Web Map Service (WMS 標準) Implementation Specification は、空間参照されたデータの地図を地理情報から動的に作成します。この国際規格は、コンピューター画面での表示に適したデジタル・イメージ・ファイルとして地理情報の描画となる地図を定義している。OpenGIS 規格は、3 つの操作 (
GetCapabilities
、GetMap
、および GetFeatureInfo
) を提供して、複数のリモート・ソース、異なるソースから同時に派生した情報について、登録済みの重なった地図のようなビューを作成して表示します。OpenGIS 規格の詳細については、http://www.opengeospatial.org/ を参照してください。Web Map Server (WMS) からイメージを読み込むのには、2 つの方法があります。
- IlvWMSReader インスタンスを直接使用する。この場合、WMS 機能をグラフィック・オブジェクトにレンダリングするのに必要なコードをすべて書いて、それをマネージャーに追加する必要があります。
- IlvWMSDataSource. これは、一時に上記操作をすべて実行する便利な方法で、地図のデータ・モデルにより統合されています。
このセクションで説明されているコードをすべて含む Map Builder のデモ用ソース・コードについては、
<installdir>
/jviews-maps89/samples/mapbuilder/index.html をご覧ください。
IlvWMSReader クラスは、指定された Web Map Server URL からイメージ機能を読み込みます。また読み込み機能で反復処理を行う IlvMapFeatureIterator インターフェースが実装されます。
IlvWMSDataSource クラスは、マネージャーの Web Map Server から取得されたイメージを含む 1 組のレイヤーを作成する便利な方法を提供しています。
IlvWMSReader クラスを使用して、Web Map Server から WMS 機能を読み込んでラスター・データを作成するには、以下の手順に従います。
-
サーバー URL から
IlvWMSReader
インスタンスを作成します。WMS サーバーの URL には、機能に対する完全な http WMS 要求、または最低限、このサーバーに対する WMS 要求 URL を使用できます。この情報はサーバーごとに異なり、通常はサーバーのマニュアルに記載されています。例えば、以下のようになります。URL url = new URL("http://wms.jpl.nasa.gov/wms.cgi?request=GetCapabilities"); // "http://wms.jpl.nasa.gov/wms.cgi" will work as well IlvWMSReader reader = new IlvWMSReader(url);
-
レンダリングするレイヤーの名前を設定します。レイヤー名はサーバー機能から取得できます。
String[] layers = reader.getAvailableLayers(); reader.setLayerNames(new String[]{layers[0]});
-
例えば、WMS イメージをレンダリングするのに使用する変換を設定します。
IlvCoordinateSystem cs = IlvCoordinateSystemProperty. GetCoordinateSystem(manager); reader.setTransformation(IlvCoordinateTransformation.CreateTransformation (cs, IlvGeographicCoordinateSystem.KERNEL));
-
機能を反復し、適切な IlvFeatureRenderer でレンダリングして、マネージャーに割り当てます。
IlvMapFeature feature = reader.getNextFeature(); IlvFeatureRenderer renderer = reader.getDefaultFeatureRenderer(); while(feature != null) { // Render the map feature into a graphic object. IlvGraphic graphic = renderer.makeGraphic(feature,null); // Add this object to the first layer of the manager. manager.addObject(graphic, 0, false); feature = reader.getNextFeature(); }
IlvWMSDataSource クラスを使用して WMS 機能を読み取るには、次の手順に従います。
-
サーバー URL から
IlvWMSDataSource
インスタンスを作成します。WMS サーバーの URL には、機能に対する完全な http WMS 要求、または最低限、このサーバーに対する WMS 要求 URL を使用できます。この情報はサーバーごとに異なり、通常はサーバーのマニュアルに記載されています。例えば、以下のようになります。URL url = new URL("http://wms.jpl.nasa.gov/wms.cgi?request=GetCapabilities"); // "http://wms.jpl.nasa.gov/wms.cgi" will work as well IlvWMSDataSource source = new IlvWMSDataSource(url);
-
取得するレイヤーを設定します。
IlvWMSReader reader = source.getReader(); String[] layers = reader.getAvailableLayers(); source.setLayers(new String[]{layers[0]});
-
オプションとして、タイリング・パラメーターを設定し、ロード・オンデマンドを有効にしたり、拡大時のイメージ解像度を向上させたりすることもできます。
source.setTilingParameters(true,5,5);
-
このデータ・ソースをビューのマネージャーに接続します。
source.setManager(manager);
-
最後に、WMS データ・ソースをスタートします。
source.start();