OracleAS MapViewerでは、Open GIS Consortium(OGC)のWeb Map Service(WMS)プロトコル、特にWMS 1.1.1の実装仕様を使用した、配信データのレンダリングをサポートしています。OracleAS MapViewerでは、OGCドキュメント01-068r3で定義されているように、GetMap、GetFeatureInfoおよびGetCapabilitiesリクエストがサポートされます。
現在のOracleAS MapViewerではオプションのStyled Layer Descriptorの機能はサポートされていません。また、このリリースのOracleAS MapViewerは、カスケード・マップ・サーバーとして機能しません。
この付録の主な項目は、次のとおりです。
MapViewerは、WMSサービスとして動作するように事前に設定されています。MapViewerは、内部では受信WMSリクエストをすべて、MapViewerサーバーへの適切なXMLリクエストに変換します。たとえば、次のHTTPリクエストは、MapViewerサーバーのGetCapabilitiesサービスを起動します。
http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1
この例で示したように、MapViewer WMSサービスのURLは通常http://
host:port
/mapviewer/wms?
です(host
およびport
は、MapViewerサーバーのホストおよびHTTPポートを指す)。コンテキスト・パス/mapviewer/wms
は、MapViewerのWMSインタフェースです。
注意: すべてのWMSリクエストは1行で入力する必要があります。この付録でWMSリクエストの例が改行されているように見える場合でも、改行は無視してください。 |
OracleAS MapViewer WMSのサポートには、WMSFilter.jar
ファイルおよびclassgen.jar
ファイルが必要です。
サーブレット・フィルタおよびその必須クラスは、WMSFilter.jar
にパッケージされます。これは、$MAPVIEWER_HOME
/web/WEB-INF/lib
ディレクトリにあります。
サーブレット・フィルタではclassgen.jar
も必要です。これは、XML Developer's Kit(XDK)for Javaに含まれます。通常、スタンドアロンのOC4Jインストールの場合には、このファイルは含まれていません。しかし、Oracle DatabaseのインストールまたはApplication Serverの完全インストールの場合はこのファイルが含まれています。
システムにclassgen.jar
ファイルがない場合は、スタンドアロンOC4Jバージョンに付属しているものと同じXDK for Javaバージョンのclassgen.jar
ファイルを使用します。このファイルを$MAPVIEWER_HOME
/web/WEB-INF/lib
ディレクトリ、またはOC4Jのライブラリ・パスに含まれるディレクトリに配置します。
classgen.jar
およびxmlparserv2.jar
ファイルは同じリリースのXDKのものである必要があります。これは、classgen.jar
ファイルがxmlparserv2.jar
ファイルに依存するためです。また、両方のファイルのXDKリリースはOC4J 10.0.0.3以上である必要があり、10.1.2以上をお薦めします。
各受信WMSリクエストでCGIパラメータdatasource
を明示的に指定していないかぎり、wms
という名前のMapViewerデータ・ソースを定義する必要があります。datasource
パラメータを指定していないリクエストはすべて、デフォルトでwms
という名前のデータ・ソースに渡されます。たとえば、GetCapabilities
リクエストはデフォルトで、wms
データ・ソース内で利用可能なすべてのテーマをリストします。(GetCapabilitiesリクエストから戻される情報を構成するには、1.5.2.9項を参照してください。)
デフォルト時、MapViewerはOracle Spatial(SDO)ネイティブのSRID(空間参照ID)値を使用します(GetCapabilitiesのようなWMSリクエストでそのような情報が必要になった場合)。ただし、WMSアプリケーションでは、EPSG SRID値の方が広く使用されています。WMSリクエストを処理してレスポンスを生成する場合にEPSG SRID値をMapViewerで使用するには、マッピング・ファイルを指定します。このマッピング・ファイルは、テキスト・ファイルであり、SDO SRID値とEPSG SRID値の対応をMapViewerに教えます。(合致するSRID値の各ペアは、同一の空間参照システムを指します。)
マッピング・ファイルに含まれる行のそれぞれでは、対応するSRID値の各ペアが次の形式で定義されます。
sdo_srid
=
epsg_srid
たとえば、次の行では、SDO SRID 8307がEPSG SRID 4362と等価であり、SDO SRID 81922がEPSG SRID 20248と等価であることを定義しています。
8307=4326 81922=20248
SDOからEPSGへのマッピング・ファイルは、作成し終えたら、MapViewerが動作しているサーバーに保存できます。また、その場所は、1.5.2.9項で説明したように、<wms_config>
要素内の<sdo_epsg_mapfile>
要素を使用して、MapViewer構成ファイル内で指定できます。
この項では、WMS 1.1.1仕様およびOracleAS MapViewerで使用される用語および概念の対応付けまたは解釈について説明します。OracleAS MapViewer固有であり、WMS 1.1.1仕様には含まれないパラメータについても説明します。
この項では、OracleAS MapViewerでサポートされるGetMapリクエストのパラメータおよびその解釈について説明します。(OracleAS MapViewer固有でWMS 1.1.1仕様に含まれないパラメータは、OracleAS MapViewerのみと記載します。)サポートされるパラメータを、個別のサブ項目としてアルファベット順に示します。例D-1は、GetMapリクエストを示しています。
例D-1 GetMapリクエスト
http://localhost:8888/mapviewer/wms?REQUEST=GetMap&VERSION=1.1.1&FORMAT=image/gif& SERVICE=WMS&BBOX=-121,37,-119,35&SRS=EPSG:4326&LAYERS=theme_demo_states,theme_ demo_counties,theme_demo_highways,theme_demo_cities&WIDTH=580&HEIGHT=500
GetMapリクエストのデフォルトのデータソースはWMS
です。つまり、GetMapリクエストでDATASOURCE
パラメータを指定しない場合、OracleAS MapViewer管理リクエストの<add_data_source>
要素(7.1.1項を参照)を使用して、WMS
という名前のデータソースが事前に作成されているとみなされます。
現在のリリースのOracleAS MapViewerでは、GetMapの次のオプション・パラメータはサポートされていません。
TIME
(時間ディメンション)
ELEVATION
(高度ディメンション)
SLD
およびWFS
URL
OracleAS MapViewerのみのパラメータには、有効なXMLフラグメントを含める必要があります。これらはHTTP GETリクエストで提供されるため、URLエンコーディング・メカニズムを使用して正しくエンコードする必要があります。たとえば、各空白( )を%20
に置き換え、各番号記号(#)を%23
に置き換えます。次の例では、そのようなエンコーディングの使用例を示しています。
http://localhost:8888/mapviewer/wms?request=GetMap&version=1.1.1&srs=none&bbox=-12 2,36,-121,37&width=600&height=400&format=image/png&layers=theme_us_ states&mvthemes=<themes><theme%20name="theme_us_counties"/><theme%20name="theme_ us_road1"/></themes>&legend_ request=<legend%20bgstyle="fill:%23ffffff;stroke:%23ff0000"%20profile="medium"%20p osition="SOUTH_EAST"><column><entry%20style="v.rb1"%20tab="1"/></column></legend>&
BASEMAP
パラメータでは、指定した(またはデフォルトの)データソースに対する名前付きベース・マップを指定します。BASEMAP
パラメータとLAYERS
パラメータの両方を指定すると、LAYERS
パラメータで指定したすべてのテーマがベース・マップに追加されます。このため、名前付きベース・マップを使用してマップの取得のみ行う場合は、BASEMAP
パラメータを指定しますが、次の例に示すように、空のLAYERS
パラメータを指定します。
REQUEST=GetMap&VERSION=1.1.1&BASEMAP=demo_ map&LAYERS=&WIDTH=500&HEIGHT=560&SRS=SDO:8307&BBOX=-122,36,-120,38.5&FORMAT=image/ png
BBOX
パラメータでは、データソースのデータが表示される枠ボックスの左下および右上の座標を指定します。形式は、BBOX=minX,minY,maxX,maxY
です。たとえば、BBOX=-122,36,-120,38.5
となります。
BGCOLOR
パラメータでは、RBG色値を使用して、マップ表示のバックグラウンド・カラーを指定します。形式は、0xHHHHHH
(各H
は0からFの16進の値)です。たとえば、BGCOLOR=0xF5F5DC
(ベージュ)になります。
DATASOURCE
パラメータでは、GetMapリクエストまたはGetFeatureInfoリクエストのデータソース名を指定します。デフォルト値はWMS
です。指定したデータソースは、GetMapリクエストまたはGetFeatureInfoリクエストの以前から存在している必要があります。つまり、<add_data_source>
OracleAS MapViewer管理リクエストを使用して作成されているか、またはOracleAS MapViewer構成ファイル(mapViewerConfig.xml
)で定義されている必要があります。
DYNAMIC_STYLES
パラメータでは、GetMapリクエストに含まれる<styles>
要素を指定します。<styles>
要素の詳細は、3.2.14項を参照してください。
EXCEPTIONS
パラメータでサポートされる値は、デフォルトのEXCEPTIONS=application/vnd.ogc.se_xml
のみです。つまり、サービス例外XMLのみがサポートされます。例外は、次のURLで入手可能なサービス例外DTDに準拠したXML文書としてレポートされます。
http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd
application/vnd.ogc.se_inimage
(Exceptionメッセージで上書きされた画像)およびapplication/vnd.ogc.se_blank
(例外が発生したためのブランク画像)オプションはサポートされません。
FORMAT
パラメータでは、画像形式を指定します。サポートされる値は、image/gif
、image/jpeg
、image/png
、image/png8
およびimage/svg+xml
です。
デフォルト値はimage/png
です。
LAYERS
パラメータでは、表示に使用する事前定義済テーマ名をカンマ区切りリストで指定します。指定された値は、デフォルトのデータソース(WMS
)またはパラメータDATASOURCE=<name>
で指定した名前付きデータソースの事前定義済テーマ名の、大/小文字が区別され、順序に意味があり、カンマで区切られているリストとみなされます。たとえば、LAYERS=THEME_DEMO_STATES,theme_demo_counties,THEME_demo_HIGHWAYS
は、OracleAS MapViewerのmapリクエスト内の次の<themes>
要素に変換されます。
<themes> <theme name="THEME_DEMO_STATES"/> <theme name="theme_demo_counties"/> <theme name="THEME_demo_HIGHWAYS"/> </themes>
ベース・マップと1つ以上のLAYERS
値の両方を指定する場合は、D.2.1.1項のBASEMAP
パラメータについての情報を参照してください。
LEGEND_REQUEST
パラメータでは、GetMapリクエストの一部として<legend>
要素を指定します。<legend>
要素の詳細は、3.2.11項を参照してください。
MVTHEMES
パラメータでは、GetMapリクエストの一部として<themes>
要素を指定します。<themes>
要素の詳細は、3.2.16項を参照してください。MVTHEMES
パラメータは、主にOracleAS MapViewerリクエストでJDBCテーマをサポートするために使用します。MVTHEMES
パラメータは、LAYERS
パラメータの代替またはシノニムではありません。LAYERS
パラメータも指定する必要があります。
REQUEST
パラメータでは、リクエスト・タイプを指定します。値はGetMap
、GetFeatureInfo
またはGetCapabilities
である必要があります。
SRS
パラメータでは、OracleAS MapViewerが使用する空間参照システム(座標系)を指定します。値は、SDO:srid-value
(srid-value
は数値でのOracle SpatialのSRID値)、EPSG:4326
(SDO:8307
に相当)またはnone
(SDO:0
に相当)のいずれかである必要があります。
EPSG:4326
(標準のWGS 84経度/緯度座標系)を除き、EPSG数値識別子はサポートされません。任意の投影中心を持つ投影のための名前空間AUTO
はサポートされません。
OracleAS MapViewerへのWMS GetCapabilitiesリクエストでは、次のパラメータのみ指定します。
REQUEST=GetCapabilities
VERSION=1.1.1
SERVICE=WMS
次に例を示します。
http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&VERSION=1.1.1&SERVICE=WMS
レスポンスは、次のURLで入手可能なWMS機能DTDに準拠したXML文書です。
http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd
ただし、現在のリリースのOracleAS MapViewerでは、次の情報を持つ<Service>
要素および<Capability>
要素を含むXML文書が戻されます。
<Service>
要素はほとんど空です。<Service.Name>
要素にOGC:WMS
の必須値のみが含まれます。OracleAS MapViewerの今後のリリースでは、より多くの情報を持つサービス・メタデータがサポートされる予定です。
<Capability>
要素には、<Request>
要素、<Exception>
要素および<Layer>
要素があります。
<Request>
要素には、HTTP GET操作またはPOST操作でサポートされる形式およびURLを記述するGetCapabilities要素およびGetMap要素が含まれます。
<Exception>
要素は例外の書式を定義します。このリリースでは、サービス例外XMLの書式のみがサポートされます。<Exception>
要素はサービス例外DTDに準拠したXML文書を戻しますが、実装仕様で指定されている例外はレポートしません。現在のリリースでは、単に<ServiceException>
要素のCDATAセクションを使用して、OracleAS MapViewerサーバーにより戻されたOMSException
を戻します。
<Layer>
要素には、ネストされた一連の<Layer>
要素が含まれます。最初の(一番外側の)レイヤーには、名前(WMS
)、タイトル(Oracle WebMapServer Layers by data source
)および定義済データソースごとに1つの<Layer>
要素が含まれます。各データソース・レイヤーには、各定義済ベース・マップに対する<Layer>
要素と、どのベース・マップにもリストされていない有効なテーマ(レイヤー)ごとに1つのエントリが含まれます。各ベース・マップ・レイヤーには、ベース・マップ内の事前定義テーマごとに<Layer>
要素が含まれます。
USER_SDO_THEMESビューで定義され、実表およびジオメトリ列のUSER_SDO_GEOM_METADATAビューに有効なエントリを持ち、どのベース・マップでも使用されていないテーマが、データソースのベース・マップの後にリストされます。これらのテーマには<ScaleHint>
要素はありません。これらには独自の<LatLonBoundingBox>
要素および<BoundingBox>
要素があります。
WMS実装仕様のとおり、レスポンスのコンテンツ・タイプはapplication/vnd.ogc.wms_xml
に設定します。
レイヤーのリストはベース・マップによる出力なので、特定のレイヤーまたはテーマがGetCapabilitiesレスポンスに何度も出現することがあります。たとえば、テーマTHEME_DEMO_STATES
はDEMO_MAP
およびDENSITY_MAP
という名前のベース・マップの一部ですが、例D-2では2回出現します。例D-2は、GetCapabilitiesレスポンスの抜粋です(読みやすいようにリフォーマットされています)。
例D-2 GetCapabilitiesレスポンス(抜粋)
<Title>Oracle WebMapServer Layers by data source</Title> <Layer> <Name>mvdemo</Name> <Title>Datasource mvdemo</Title> <Layer> <Name>DEMO_MAP</Name> <Title>Basemap DEMO_MAP</Title> <SRS>SDO:8307</SRS> <LatLonBoundingBox>-180,-90,180,90</LatLonBoundingBox> . . . <Layer> <Name>DENSITY_MAP</Name> <Title>Basemap DENSITY_MAP</Title> <SRS>SDO:8307</SRS> <LatLonBoundingBox>-180,-90,180,90</LatLonBoundingBox> <Layer> <Name>THEME_DEMO_STATES</Name> <Title>THEME_DEMO_STATES</Title> <SRS>SDO:8307</SRS> <BoundingBox SRS="SDO:8307" minx="-180" miny="-90" maxx="180" maxy="90" resx="0.5" resy="0.5"/> <ScaleHint min="50.0" max="4.0"/> </Layer> . . . </Layer> <Layer> <Name>IMAGE_MAP</Name> <Title>Basemap IMAGE_MAP</Title> <SRS>SDO:41052</SRS> <LatLonBoundingBox>-180,-90,180,90</ LatLonBoundingBox> <Layer> <Name>IMAGE_LEVEL_2</Name> <Title>IMAGE_LEVEL_2</Title> <SRS>SDO:41052</SRS> <BoundingBox SRS="SDO:41052" minx="200000" miny="500000" maxx="750000" maxy="950000" resx="0.5" resy="0.5"/> <ScaleHint min="1000.0" max="0.0"/> </Layer> . . . </Layer>
例D-2では、最も内側のレイヤーがIMAGE_LEVEL_2
テーマを記述しています。<ScaleHint>
要素は、ベース・マップ定義におけるテーマのmin_scale
値およびmax_scale
値(存在する場合)をリストします。たとえば、IMAGE_MAP
のベース・マップ定義は次のとおりです。
SQL> select definition from user_sdo_maps where name='IMAGE_MAP'; DEFINITION ------------------------------------------------------------------------ <?xml version="1.0" standalone="yes"?> <map_definition> <theme name="IMAGE_LEVEL_2" min_scale="1000.0" max_scale="0.0"/> <theme name="IMAGE_LEVEL_8" min_scale="5000.0" max_scale="1000.0"/> <theme name="MA_ROAD3"/> <theme name="MA_ROAD2"/> <theme name="MA_ROAD1"/> <theme name="MA_ROAD0"/> </map_definition>
最も内側のレイヤーでは、<SRS>
要素および<BoundingBox>
要素は、次の空間メタデータ問合せに示すように、そのテーマの実表のSRIDおよびDIMINFO情報を識別します。
SQL> select srid, diminfo from user_sdo_geom_metadata, user_sdo_themes 2 where name='IMAGE_LEVEL_2' and 3 base_table=table_name and 4 geometry_column=column_name ; SRID ---------- DIMINFO(SDO_DIMNAME, SDO_LB, SDO_UB, SDO_TOLERANCE) -------------------------------------------------------------------------------- 41052 SDO_DIM_ARRAY(SDO_DIM_ELEMENT('X', 200000, 500000, .5), SDO_DIM_ELEMENT('Y', 750 000, 950000, .5))
例D-2では、ベース・マップの<Layer>
要素には、<SRS>
要素および<LatLonBoundingBox>
要素があります。ベース・マップ定義のすべてのレイヤーがUSER_SDO_GEOM_METADATAビューで指定された同一のSRID値を持たない場合、<SRS>
要素は空です。すべてのレイヤーが同一のSRID値(たとえば、41052)を持つ場合は、SRS要素にその値(たとえば、SDO:41052
)が指定されます。必須の<LatLonBoundingBox>
要素には、現在、デフォルト値(-180,-90,180,90
)が入っています。OracleAS MapViewerでこの機能がサポートされている場合、実際にはこの要素はそのレイヤーのUSER_SDO_GEOM_METADATAビューのDIMINFO列で指定された境界となり、必要に応じ、可能であれば測地座標に変換されます。
現在、すべてのレイヤーは不透明かつ問合せ可能とみなされます。つまり、すべてのレイヤーはGeoRaster、論理ネットワークまたは画像レイヤーではなく、ベクトル・レイヤーとみなされます。
この項では、OracleAS MapViewerでサポートされるGetFeatureInfoリクエストのパラメータおよびその解釈について説明します。例D-3は、GetFeatureInfoリクエストを示しています。
例D-3 GetFeatureInfoリクエスト
http://localhost:8888/mapviewer/wms?REQUEST=GetFeatureInfo&VERSION=1.1.1&BBOX=0,-0 .0020,0.0040&SRS=EPSG:4326&LAYERS=cite:Lakes,cite:Forests&WIDTH=200&HEIGHT=100&INF O_FORMAT=text/xml&QUERY_LAYERS=cite:Lakes,cite:Forests&X=60&Y=60
レスポンスはXML文書であり、レスポンスのコンテンツ・タイプはtext/xml
です。例D-4は、例D-3のGetFeatureInfoリクエストへのレスポンスです。
例D-4 GetFeatureInfoレスポンス
<?xml version="1.0" encoding="UTF-8" ?> <GetFeatureInfo_Result> <ROWSET name="cite:Lakes"> <ROW num="1"> <ROWID>AAAK22AAGAAACUiAAA</ROWID> </ROW> </ROWSET> <ROWSET name="cite:Forests"> <ROW num="1"> <FEATUREID>109</FEATUREID> </ROW> </ROWSET> </GetFeatureInfo_Result>
次の項では、主にGetFeatureInfoリクエストでサポートされるパラメータについて説明します。(OracleAS MapViewer固有でWMS 1.1.1仕様に含まれないパラメータは、OracleAS MapViewerのみと記載します。)D.2.3.10項では、GetFeatureInfoリクエストの属性の問合せ方法について説明します。
GetFeatureInfoリクエストには、GetMapリクエスト(BBOX
パラメータ、SRS
パラメータ、WIDTH
パラメータ、HEIGHT
パラメータおよびオプションのLAYERS
パラメータ)のサブセットが含まれます。これらのパラメータは、画面座標のX、Yポイントを、問合せ中のレイヤーの座標系のポイントに変換するために使用します。すべてのレイヤーの座標系は、SRS
パラメータで指定された同一の座標系であるとみなされます。
EXCEPTIONS
パラメータでサポートされる値は、デフォルトのapplication/vnd.ogc.se_xml
のみです。つまり、サービス例外XMLのみがサポートされます。例外は、次のURLで入手可能なサービス例外DTDに準拠したXML文書としてレポートされます。
http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd
FEATURE_COUNT
パラメータでは、結果セット内の地物の最大数を指定します。デフォルト値は1です。パラメータの値より多くの地物が問合せポイント(X, Y)と相互作用する場合、地物の適当なサブセット(パラメータ値のサイズ)が結果セットで戻されます。つまり、GetFeatureInfoコールが次のような一般的な書式の問合せに変換します。
SELECT <info_columns> FROM <layer_table> WHERE SDO_RELATE(<geom_column>, <query_point>, 'mask=ANYINTERACT')='TRUE' AND ROWNUM <= FEATURE_COUNT;
QUERY_LAYERS
パラメータでは、問い合せるレイヤーのカンマ区切りリストを指定します。LAYERS
パラメータが指定されている場合、QUERY_LAYERS
の指定はLAYERS
パラメータで指定されたリストのサブセットである必要があります。
QUERY_LAYERS
パラメータが指定されている場合、すべてのBASEMAP
パラメータ値が無視されます。
QUERY_TYPE
パラメータは、次のいずれかの値を指定することにより、結果セットを、必要条件を満たすことのできる地物のサブセットに制限します。
at_point
: 指定されたポイントの地物のみ戻します。
nn
: 最も近い近隣の地物のみ戻します。結果数は、FEATURE_COUNT
パラメータ値(D.2.3.3項を参照)により異なります。結果セットは、距離順に並べ替えられません。
within_radius
(またはシノニムであるwithin_distance
): RADIUS
パラメータ(D.2.3.7項を参照)の値によって指定された距離内にある結果を、FEATURE_COUNT
パラメータ(D.2.3.3項を参照)の値に合致する数まで戻します。結果セットは、指定された半径内にあると思われる地物の回答セットの任意のサブセットです。結果セットは、距離順に並べ替えられません。
RADIUS
パラメータでは、QUERY_TYPE
パラメータ値がwithin_radius
(D.2.3.6項を参照)である、円形の問合せ用検索領域の半径を指定します。RADIUS
パラメータを指定する場合は、UNIT
パラメータ(をD.2.3.8項参照)も指定する必要があります。
UNIT
パラメータでは、QUERY_TYPE
パラメータ値がwithin_radius
(D.2.3.6項を参照)である、円形の問合せ用検索領域の半径の測定単位を指定します。値は、SDO_UNITS_OF_MEASURE表のSHORT_NAME列の有効な長さの単位値(meter
、km
mile
など)である必要があります。
UNIT
パラメータを指定する場合は、RADIUS
パラメータ(D.2.3.7項を参照)も指定する必要があります。
GetFeatureInfoリクエストでは、問合せ可能な各レイヤー(テーマ)のスタイリング・ルールに、検索対象であり、XMLレスポンスで戻される属性を指定する<hidden_info>
要素を含める必要があります。<hidden_info>
要素は、SVG mapリクエストで戻される属性の決定に使用される要素と同じです。
そのようなスタイリング・ルールの例を次に示します。
SQL> select styling_rules from user_sdo_themes where name='cite:Forests'; STYLING_RULES -------------------------------------------------------------------------------- <?xml version="1.0" standalone="yes"?> <styling_rules> <hidden_info> <field column="FID" name="FeatureId"/> </hidden_info> <rule> <features style="C.PARK FOREST"> </features> <label column="NAME" style="T.PARK NAME"> 1 </label> </rule> </styling_rules>
このスタイリング・ルールでは、cite:Forests
がGetFeatureInfoリクエストのQUERY_LAYERS
パラメータ値の1つである場合、FIDという名前の列を検索し、レスポンス文書でのタグが<FEATUREID>
となることを指定しています。タグは常に大文字です。テーマの問合せレイヤーのスタイリング・ルールで<hidden_info>
要素が指定されていない場合は、ROWIDが戻されます。例D-4では、cite:Lakes
レイヤーのスタイリング・ルールに<hidden_info>
要素がないため、XMLレスポンスではデフォルト属性ROWIDが戻されます。ただし、cite:Forests
レイヤーには<hidden_info>
要素があります。この要素は属性列がFIDであること、レスポンス文書でのそのタグの名前が<FEATUREID>
であることを指定しています。
WMSマップ・テーマを現行mapリクエストに追加できます。WMSマップ・テーマは、GetMapリクエストの結果であり、OracleAS MapViewerでレンダリングされた一連のレイヤー(テーマ)では画像レイヤーとなります。
WMS mapテーマを追加するには、XML API(D.3.1項を参照)またはJavaBeanベースAPI(D.3.2項を参照)のいずれかのWMS固有の機能を使用します。
OracleAS MapViewer XML APIを使用して、WMSマップ・テーマを現行mapリクエストに追加するには、<theme>
要素で<wms_getmap_request>
要素を使用します。
パフォーマンスを向上させるため、<wms_getmap_request>
要素は、Web Map Server(WMS)実装からのmap画像のリクエストにのみ使用する必要があります。つまり、<wms_getmap_request>
要素の<service_url>
要素では、OracleAS MapViewerインスタンスではなく、WMS実装を指定する必要があります。OracleAS MapViewerインスタンスを指定する場合(http://mapviewer.mycorp.com:8888/mapviewer/wms
の値で<service_url>
を指定する場合など)は、<wms_getmap_request>
要素を使用するかわりに、<themes>
要素でOracleAS MapViewerの事前定義済テーマまたはJDBCテーマの使用を検討してください。
次の例では、<theme>
要素内の<wms_getmap_request>
要素の一般的な書式を、サンプル要素の値および説明コメントとともに示します。
<themes> <theme> <wms_getmap_request isBackgroundTheme="true"> <!-- The wms_getmap_request theme is rendered in the order it appears in the theme list unless isBackgroundTheme is "true". --> <service_url> http://wms.mapsrus.com/mapserver </service_url> <version> 1.1.1 </version> <!-- version is optional. Default value is "1.1.1". --> <layers> Administrative+Boundaries,Topography,Hydrography </layers> <!— layers is a comma-delimited list of names. If layer names contain spaces, use '+' instead of a space --> <!— styles is optional. It is a comma-delimited list, and it must have the same number of names as the layer list, if specified. If style names contain spaces, use '+' instead of a space --> <styles/> <srs> EPSG:4326 </srs> <format> image/png </format> <transparent> true </transparent> <bgcolor> 0xffffff </bgcolor> <exceptions> application/vnd.ogc.se_inimage </exceptions> <vendor_specific_parameters> <!-- one or more <vsp> elements each containing a <name> <value> pair --> <vsp> <name> datasource </name> <value> mvdemo </value> </vsp> <vendor_specific_parameters> <wms_getmap_request> </theme> </themes>
<wms_getmap_request>
要素では、次の属性および要素を使用できます。
isBackgroundTheme
属性は、ベクトル・レイヤーの前にこのテーマをレンダリングするかどうかを指定します。デフォルト値はfalse
です。
<service_url>
要素では、WMSサービスのURL(サービス・パラメータなし)を指定します。例: http://my.webmapserver.com/wms
<version>
要素は、WMSバージョン番号を指定します。値は、1.0.0
、1.1.0
または1.1.1
(デフォルト)のいずれかである必要があります。
<layers>
要素は、mapリクエストに含まれるレイヤー名のカンマ区切りリストを指定します。
<styles>
要素は、layers
のレイヤー名に適用するスタイル名のカンマ区切りリストを指定します。
<srs>
要素は、座標系(空間参照システム)の名前を指定します。デフォルト値はEPSG:4326
です。
<format>
要素は、結果のmap画像の形式を指定します。デフォルト値はimage/png
です。
<transparent>
要素は、追加するレイヤー(1つまたは複数)を結果のmap画像で透明にするかどうかを指定します。デフォルト値はfalse
です。レイヤーを透明にする場合は、true
を指定します。
<bgcolor>
要素は、マップのバックグラウンド・カラーのRGB値を指定します。値には、0xAE75B1
などの16進法を使用します。デフォルト値は0xFFFFFF
(白)です。
<exceptions>
要素は、サーバー例外の書式を指定します。デフォルト値はapplication/vnd.ogc.se_inimage
です。
<vendor_specific_parameters>
要素には、1つ以上の<vsp>
要素が含まれ、それぞれの要素にはパラメータ名を指定する<name>
要素およびパラメータ値を指定する<value>
要素が含まれます。
例D-5は、mapリクエストの<wms_getmap_request>
要素を示しています。
例D-5 WMSマップ・テーマの追加(XML API)
<?xml version="1.0" standalone="yes"?> <map_request title="Raster WMS Theme and Vector Data" datasource="mvdemo" srid="0" width="500" height="375" bgcolor="#a6caf0" antialiase="true" mapfilename="wms_georaster" format="PNG_URL"> <center size="185340.0"> <geoFeature> <geometricProperty typeName="center"> <Point> <coordinates>596082.0,8881079.0</coordinates> </Point> </geometricProperty> </geoFeature> </center> <themes> <theme name="WMS_TOPOGRAPHY" user_clickable="false" > <wms_getmap_request isBackgroundTheme="true"> <service_url> http://wms.mapservers.com:8888/mapserver/wms </service_url> <layers> TOPOGRAPHY </layers> <srs> EPSG:29190 </srs> <format> image/png </format> <bgcolor> 0xa6caf0 </bgcolor> <transparent> true </transparent> <vendor_specific_parameters> <vsp> <name> ServiceType </name> <value> mapserver </value> </vsp> </vendor_specific_parameters> </wms_getmap_request> </theme> <theme name="cl_theme" user_clickable="false"> <jdbc_query spatial_column="geom" render_style="ltblue" jdbc_srid="82279" datasource="mvdemo" asis="false">select geom from classes where vegetation_type = 'forests' </jdbc_query> </theme> </themes> <styles> <style name="ltblue"> <svg width="1in" height="1in"> <g class="color" style="stroke:#000000;stroke-opacity:250;fill:#33ffff;fill-opacity:100"> <rect width="50" height="50"/> </g> </svg> </style> </styles> </map_request>
OracleAS MapViewer JavaBeanベースAPIを使用して、WMSマップ・テーマを現行mapリクエストに追加するには、addWMSMapTheme
メソッドを使用します。
このメソッドは、Web Map Server(WMS)実装からmap画像をリクエストする場合にのみ使用する必要があります。つまり、serviceURL
パラメータでは、OracleAS MapViewerインスタンスではなく、WMS実装を指定する必要があります。
addWMSMapTheme
メソッドの書式は、次のとおりです。
addWMSMapTheme(String name, String serviceURL, String isBackgroundTheme, String version, String[] layers, String[] styles, String srs, String format, String transparent, String bgcolor, String exceptions, Object[] vendor_specific_parameters );
name
パラメータでは、テーマ名を指定します。
serviceURL
パラメータでは、WMSサービスのURL(サービス・パラメータなし)を指定します。例: http://my.webmapserver.com/wms
isBackgroundTheme
パラメータでは、ベクトル・レイヤーの前にこのテーマをレンダリングするかどうかを指定します。デフォルト値はfalse
です。
version
パラメータでは、WMSバージョン番号を指定します。値は、1.0.0
、1.1.0
または1.1.1
(デフォルト)のいずれかである必要があります。
layers
パラメータでは、mapリクエストに含まれるレイヤー名のカンマ区切りリストを指定します。
styles
パラメータでは、layers
のレイヤー名に適用するスタイル名のカンマ区切りリストを指定します。
srs
パラメータでは、座標系(空間参照システム)の名前を指定します。デフォルト値はEPSG:4326
です。
format
パラメータでは、結果のmap画像の形式を指定します。デフォルト値はimage/png
です。
transparent
パラメータでは、追加するレイヤー(1つまたは複数)を結果のmap画像で透明にするかどうかを指定します。デフォルト値はfalse
です。レイヤーを透明にする場合は、true
を指定します。
bgcolor
パラメータでは、マップのバックグラウンド・カラーのRGB値を指定します。値には、0xAE75B1
などの16進法を使用します。デフォルト値は0xFFFFFF
(白)です。
exceptions
パラメータでは、サーバー例外の書式を指定します。デフォルト値はapplication/vnd.ogc.se_inimage
です。
vendor_specific_parameters
パラメータでは、ベンダー固有のパラメータのリストを指定します。オブジェクト配列の各要素は、2つの文字列(パラメータ名および値)を持つString配列です。例: vsp = new Object[]{new String[]{"DATASOURCE", "mvdemo"}, //param 1 new String[]{"antialiasing", "true"} //param 2