MapViewerでは、Open GIS Consortium(OGC)のWeb Map Service(WMS)プロトコル、特にWMS 1.1.1および1.3.0の実装仕様を使用した、配信データのレンダリングをサポートしています。MapViewerでは、OGCドキュメント01-068r3および06-042で定義されているように、GetMap、GetFeatureInfoおよびGetCapabilitiesリクエストがサポートされます。
現在のMapViewerではオプションのStyled Layer Descriptorの機能はサポートされていません。また、このリリースのMapViewerは、カスケード・マップ・サーバーとして機能しません。
この付録の主な項目は、次のとおりです。
MapViewerは、WMSサービスとして動作するように事前に設定されています。MapViewerは、内部では受信WMSリクエストをすべて、MapViewerサーバーへの適切なXMLリクエストに変換します。たとえば、次のHTTPリクエストは、MapViewerサーバーのGetCapabilitiesサービスを起動します。
http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1 or http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0
この例で示したように、MapViewer WMSサービスのURLは通常http://
host:port
/mapviewer/wms?
です(host
およびport
は、MapViewerサーバーのホストおよびHTTPポートを指す)。コンテキスト・パス/mapviewer/wms
は、MapViewerのWMSインタフェースです。
注意: すべてのWMSリクエストは1行で入力する必要があります。この付録でWMSリクエストの例が改行されているように見える場合でも、改行は無視してください。 |
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のインストールまたはOracle Fusion Middlewareの完全インストールの場合はこのファイルが含まれています。
システムに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.12項を参照してください。)
デフォルト時、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 4326と等価であり、SDO SRID 81922がEPSG SRID 20248と等価であることを定義しています。
8307=4326 81922=20248
SDOからEPSGへのマッピング・ファイルは、作成し終えたら、MapViewerが動作しているサーバーに保存できます。また、その場所は、1.5.2.12項で説明したように、<wms_config>
要素内の<sdo_epsg_mapfile>
要素を使用して、MapViewer構成ファイル内で指定できます。
この項では、WMS 1.1.1および1.3.0仕様、またMapViewerで使用される用語および概念の対応付けや解釈について説明します。MapViewer固有であり、WMS 1.1.1および1.3.0仕様には含まれないパラメータについても説明しています。
この項では、MapViewerでサポートされるGetMapリクエストのパラメータおよびその解釈について説明します。(MapViewer固有でWMS 1.1.1および1.3.0仕様に含まれないパラメータについては、MapViewerのみと記載します。)サポートされるパラメータを、個別のサブ項目としてアルファベット順に紹介します。例E-1に、GetMapリクエストを示します。(各URLは一行で入力してください。)
例E-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 http://localhost:8888/mapviewer/wms?REQUEST=GetMap&VERSION=1.3.0&FORMAT=image/gif& SERVICE=WMS&BBOX=-121,37,-119,35&CRS=EPSG:4326&LAYERS=theme_demo_states,theme_ demo_counties,theme_demo_highways,theme_demo_cities&WIDTH=580&HEIGHT=500 http://localhost:8888/mapviewer/wms?request=GetMap&version=1.3.0&crs=none &bbox=-122,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>&
GetMapリクエストのデフォルトのデータソースはWMS
です。つまり、GetMapリクエストでDATASOURCE
パラメータを指定しない場合、MapViewer管理リクエストの<add_data_source>
要素(7.1.1項を参照)を使用して、WMS
という名前のデータソースが事前に作成されているとみなされます。
現在のリリースのMapViewerでは、GetMapの次のオプション・パラメータはサポートされていません。
TIME
(時間ディメンション)
ELEVATION
(高度ディメンション)
SLD
およびWFS
URL
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 REQUEST=GetMap&VERSION=1.3.0&BASEMAP=demo_ map&LAYERS=&WIDTH=500&HEIGHT=560&CRS=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>
MapViewer管理リクエストを使用して作成されているか、またはMapViewer構成ファイル(mapViewerConfig.xml
)で定義されている必要があります。
DYNAMIC_STYLES
パラメータでは、GetMapリクエストに含まれる<styles>
要素を指定します。<styles>
要素の詳細は、3.2.19項を参照してください。
EXCEPTIONS
パラメータでサポートされる値はデフォルトのみであり、WMS1.1.0ではEXCEPTIONS=application/vnd.ogc.se_xml
、またWMS1.3.0ではEXCEPTIONS=XML
です。例外は、次のURLで入手可能なサービス例外DTDに準拠したXML文書としてレポートされます。
http://schemas.opengis.net/wms/1.1.1/WMS_exception_1_1_1.dtd
http://schemas.opengis.net/wms/1.3.0/exception_1_3_0.xsd
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
は、MapViewerのマップ・リクエスト内の次の<themes>
要素に変換されます。
<themes> <theme name="THEME_DEMO_STATES"/> <theme name="theme_demo_counties"/> <theme name="THEME_demo_HIGHWAYS"/> </themes>
ベース・マップと1つ以上のLAYERS
値の両方を指定する場合は、E.2.1.1項のBASEMAP
パラメータについての情報を参照してください。
LEGEND_REQUEST
パラメータでは、GetMapリクエストの一部として<legend>
要素を指定します。<legend>
要素の詳細は、3.2.11項を参照してください。
MVTHEMES
パラメータは、GetMapリクエストの一部として<themes>
要素を指定します。<themes>
要素の詳細は、3.2.21項を参照してください。MVTHEMES
パラメータは、主にMapViewerリクエストでJDBCテーマをサポートするために使用します。MVTHEMES
パラメータは、LAYERS
パラメータの代替またはシノニムではありません。LAYERS
パラメータも指定する必要があります。
REQUEST
パラメータでは、リクエスト・タイプを指定します。値はGetMap
、GetFeatureInfo
またはGetCapabilities
である必要があります。
SRS
パラメータ(WMS 1.1.1)またはCRS
パラメータ(WMS 1.3.0)では、MapViewerが使用する空間参照システム(座標系)を指定します。値は、SDO:srid-value
(srid-value
は数値でのOracle SpatialのSRID値)、EPSG:4326
(SDO:8307
に相当)またはnone
(SDO:0
に相当)のいずれかである必要があります。
EPSG:4326
(標準のWGS 84経度/緯度座標系)を除き、EPSG数値識別子はサポートされません。任意の投影中心を持つ投影のための名前空間AUTO
(WMS 1.1.1)またはAUTO2
(WMS 1.3.0)はサポートされません。
TRANSPARENT=TRUE
パラメータ(透明画像用)は、PNG画像でサポートされています。つまり、索引付き(8ビット)のPNG形式に対して、FORMAT=image/png
またはFORMAT=image/png8
でサポートされています。MapViewerでは透明GIF(GIF89)画像はサポートされません。
MapViewerへのWMS GetCapabilitiesリクエストでは、次のパラメータのみを指定します。
REQUEST=GetCapabilities
VERSION=1.1.1
またはVERSION=1.3.0
SERVICE=WMS
次に例を示します。
http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&VERSION=1.1.1&SERVICE=WMS or http://localhost:8888/mapviewer/wms?REQUEST=GetCapabilities&VERSION=1.3.0&SERVICE=WMS
レスポンスは、VERSION
パラメータ(1.1.1または1.3.0)値に応じて、次のURLで入手可能なWMS機能DTDに準拠したXML文書です。
http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd
http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd
ただし、現在のリリースのMapViewerでは、次の情報を持つ<Service>
要素および<Capability>
要素を含むXML文書が返されます。
<Service>
要素はほとんど空です。<Service.Name>
要素にOGC:WMS
の必須値のみが含まれます。MapViewerの今後のリリースでは、より多くの情報を持つサービス・メタデータがサポートされる予定です。
<Capability>
要素には、<Request>
要素、<Exception>
要素および<Layer>
要素があります。
<Request>
要素には、HTTP GET操作またはPOST操作でサポートされる形式およびURLを記述するGetCapabilities要素およびGetMap要素が含まれます。
<Exception>
要素は例外の書式を定義します。このリリースでは、サービス例外XMLの書式のみがサポートされます。<Exception>
要素はサービス例外DTDに準拠したXML文書を返しますが、実装仕様で指定されている例外はレポートしません。現在のリリースでは、単に<ServiceException>
要素のCDATAセクションを使用して、MapViewerサーバーにより返されたOMSException
を返します。
<Layer>
要素には、ネストされた一連の<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
という名前のベース・マップの一部ですが、例E-2では2回出現します。例E-2は、GetCapabilitiesレスポンスの抜粋です(読みやすいようにリフォーマットされています)。
例E-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>
例E-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))
例E-2では、ベース・マップの<Layer>
要素には、<SRS>
要素および<LatLonBoundingBox>
要素があります。ベース・マップ定義のすべての層がUSER_SDO_GEOM_METADATAビューで指定された同一のSRID値を持たない場合、<SRS>
要素は空になります。すべての層が同一のSRID値(たとえば、41052)を持つ場合は、SRS要素にその値(たとえば、SDO:41052
)が指定されます。必須の<LatLonBoundingBox>
要素には、現在、デフォルト値(-180,-90,180,90
)が入っています。MapViewerでこの機能がサポートされている場合、実際にはこの要素はその層のUSER_SDO_GEOM_METADATAビューのDIMINFO列で指定された境界となり、必要に応じ、可能であれば測地座標に変換されます。
現在、すべての層は不透明かつ問合せ可能とみなされます。つまり、すべての層はGeoRaster、論理ネットワークまたは画像層ではなく、ベクター層とみなされます。
この項では、MapViewerでサポートされるGetFeatureInfoリクエストのパラメータおよびその解釈について説明します。例E-3に、GetFeatureInfoリクエストを示します。
例E-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 http://localhost:8888/mapviewer/wms?REQUEST=GetFeatureInfo&VERSION=1.3.0 &BBOX=0,-0.0020,0.0040&CRS=EPSG:4326&LAYERS=cite:Lakes,cite:Forests&WIDTH=200&HEIGHT=100 &INFO_FORMAT=text/xml&QUERY_LAYERS=cite:Lakes,cite:Forests&I=60&J=60
レスポンスはXML文書であり、レスポンスのコンテンツ・タイプはtext/xml
です。例E-4は、例E-3のGetFeatureInfoリクエストに対するレスポンスです。
例E-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リクエストでサポートされるパラメータについて説明します。(MapViewer固有でWMS 1.1.1仕様に含まれないパラメータについては、MapViewerのみと記載します。)E.2.3.10項では、GetFeatureInfoリクエストの属性の問合せ方法について説明します。
GetFeatureInfoリクエストには、GetMapリクエスト(BBOX
パラメータ、SRS
(1.1.1)またはCRS
(1.3.0)パラメータ、WIDTH
パラメータ、HEIGHT
パラメータおよびオプションのLAYERS
パラメータ)のサブセットが含まれます。これらのパラメータは、画面座標のX、Y(1.1.1)またはI、J(1.3.0)ポイントを、問合せ中の層の座標系のポイントに変換するために使用します。すべての層の座標系は、SRS
パラメータで指定された同一の座標系であるとみなされます。
EXCEPTIONS
パラメータでサポートされる値は、デフォルトのapplication/vnd.ogc.se_xml
(WMS 1.1.1)または xml
(WMS 1.3.0)のみです。つまり、サービス例外XMLのみがサポートされます。例外は、バージョン(1.1.1または1.3.0)に応じて、次の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
パラメータ値(E.2.3.3項を参照)により異なります。結果セットは、距離順に並べ替えられません。
within_radius
(またはシノニムであるwithin_distance
): RADIUS
パラメータ(E.2.3.7項を参照)の値によって指定された距離内にある結果を、FEATURE_COUNT
パラメータ(E.2.3.3項を参照)の値に合致する数まで返します。結果セットは、指定された半径内にあると思われる地物の回答セットの任意のサブセットです。結果セットは、距離順に並べ替えられません。
RADIUS
パラメータでは、QUERY_TYPE
パラメータ値がwithin_radius
(E.2.3.6項を参照)である、円形の問合せ用検索領域の半径を指定します。RADIUS
パラメータを指定する場合は、UNIT
パラメータ(E.2.3.8項を参照)も指定する必要があります。
UNIT
パラメータでは、QUERY_TYPE
パラメータ値がwithin_radius
(E.2.3.6項を参照)である、円形の問合せ用検索領域の半径の測定単位を指定します。値は、SDO_UNITS_OF_MEASURE表のSHORT_NAME列の有効な長さの単位値(meter
、km
mile
など)である必要があります。
UNIT
パラメータを指定する場合は、RADIUS
パラメータ(E.2.3.7項を参照)も指定する必要があります。
X
パラメータおよびY
パラメータ(WMS 1.1.1)、I
パラメータおよびJ
パラメータ(WMS 1.3.0)では、それぞれ問い合せポイントのX軸およびY軸座標系(ピクセル単位)を指定します。
GetFeatureInfoリクエストでは、問合せ可能な各層(テーマ)のスタイリング・ルールに、問合せ対象であり、XMLレスポンスで返される属性を指定する<hidden_info>
要素を含める必要があります。<hidden_info>
要素は、SVGマップ・リクエストで返される属性の決定に使用される要素と同じです。
そのようなスタイリング・ルールの例を次に示します。
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が返されます。例E-4では、cite:Lakes
層のスタイリング・ルールに<hidden_info>
要素がないため、XMLレスポンスではデフォルト属性ROWIDが返されます。ただし、cite:Forests
層には<hidden_info>
要素があります。この要素は属性列がFIDであること、レスポンス文書でのそのタグの名前が<FEATUREID>
であることを指定しています。
WMSマップ・テーマを現行マップ・リクエストに追加できます。WMSマップ・テーマは、GetMapリクエストの結果であり、MapViewerでレンダリングされた一連の層(テーマ)では画像層となります。
WMSマップ・テーマを追加するには、XML API(E.3.1項を参照)またはJavaBeanベースAPI(E.3.3項を参照)のいずれかのWMS固有の機能を使用します。
MapViewer XML APIを使用して、WMSマップ・テーマを現行マップ・リクエストに追加するには、<theme>
要素内で<wms_getmap_request>
要素を使用します。
パフォーマンスを向上させるため、<wms_getmap_request>
要素は、Web Map Server(WMS)実装からのマップ画像のリクエストにのみ使用する必要があります。つまり、<wms_getmap_request>
要素内の<service_url>
要素では、MapViewerインスタンスではなく、WMS実装を指定する必要があります。MapViewerインスタンスを指定する場合(http://mapviewer.mycorp.com:8888/mapviewer/wms
の値で<service_url>
を指定する場合など)は、<wms_getmap_request>
要素を使用するかわりに、<themes>
要素で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
(デフォルト)、1.3.0
のいずれかである必要があります。
<layers>
要素: マップ・リクエストに含まれる層名のカンマ区切りリストを指定します。
<styles>
要素: layers
の層名に適用するスタイル名のカンマ区切りリストを指定します。
<srs>
要素: 座標系(空間参照システム)の名前を指定します。デフォルト値はEPSG:4326
です。
<format>
要素: 結果のマップ画像の形式を指定します。デフォルト値はimage/png
です。
<transparent>
要素: 追加する層(1つまたは複数)を結果のマップ画像で透明にするかどうかを指定します。デフォルト値はfalse
です。層を透明にする場合は、true
を指定します。
<bgcolor>
要素: マップのバックグラウンド・カラーのRGB値を指定します。値には、0xAE75B1
などの16進法を使用します。デフォルト値は0xFFFFFF
(白)です。
<exceptions>
要素: サーバー例外の書式を指定します。デフォルト値はapplication/vnd.ogc.se_inimage
です。
<vendor_specific_parameters>
要素には、1つ以上の<vsp>
要素が含まれ、それぞれの要素にはパラメータ名を指定する<name>
要素およびパラメータ値を指定する<value>
要素が含まれます。
例E-5は、マップ・リクエストの<wms_getmap_request>
要素を示しています。
例E-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>
WMSテーマの事前定義済のXML定義は、E.3.1項と同じパラメータ構造を使用し、オプションのcapabilities_url
属性を追加します。これは、WMSテーマの編集時にMap Builderによって使用されます。capabilities_url
属性が定義されている場合、Map BuilderはGetCapabilities
リクエストを発行して、エディタ・ページにいくつかのUI要素を移入します。
例E-6は、メタデータで事前定義済のWMSテーマを作成する方法を示します。実表名および列名には任意の値を使用できます。この例では、どちらにも'WMS'
が使用されます。
例E-6 事前定義されたWMSテーマの作成
INSERT INTO user_sdo_themes VALUES ( 'PRED_WMS_THEME', 'WMS data', 'WMS', 'WMS', '<?xml version="1.0" standalone="yes"?> <styling_rules theme_type="wms"> <service_url> http://sampleserver1b.arcgisonline.com/arcgis/services/Specialty/ESRI_StateCityHighway_USA/MapServer/WMSServer </service_url> <layers> 0,1,2 </layers> <version> 1.3.0 </version> <srs> CRS:84 </srs> <format> image/png </format> <bgcolor> 0xA6CAF0 </bgcolor> <transparent> false </transparent> <styles> +,+,+ </styles> <exceptions> xml </exceptions> <capabilities_url> http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StateCityHighway_USA/MapServer/WMSServer? </capabilities_url> </styling_rules>');
MapViewer JavaBeanベースAPIを使用して、WMSマップ・テーマを現行マップ・リクエストに追加するには、addWMSMapTheme
メソッドを使用します。
このメソッドは、Web Map Server(WMS)実装からマップ画像をリクエストする場合にのみ使用する必要があります。つまり、serviceURL
パラメータでは、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
パラメータでは、マップ・リクエストに含まれる層名のカンマ区切りリストを指定します。
styles
パラメータでは、layers
の層名に適用するスタイル名のカンマ区切りリストを指定します。
srs
パラメータでは、座標系(空間参照システム)の名前を指定します。デフォルト値はEPSG:4326
です。
format
パラメータでは、結果のマップ画像の形式を指定します。デフォルト値はimage/png
です。
transparent
パラメータでは、追加する層(1つまたは複数)を結果のマップ画像で透明にするかどうかを指定します。デフォルト値は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