C.3 WMSマップ・テーマの追加
WMSマップ・テーマを現行マップ・リクエストに追加できます。WMSマップ・テーマは、GetMapリクエストの結果であり、マップ・ビジュアライゼーション・コンポーネントでレンダリングされた一連の層(テーマ)では画像層となります。
WMSマップ・テーマを追加するには、XML APIのWMS固有の機能を使用します(「WMSマップ・テーマを追加するためのXML API」を参照)。
C.3.1 WMSマップ・テーマを追加するためのXML API
マップ・ビジュアライゼーション・コンポーネントXML APIを使用して、WMSマップ・テーマを現行マップ・リクエストに追加するには、<theme>
要素内で<wms_getmap_request>
要素を使用します。
パフォーマンスを向上させるため、<wms_getmap_request>
要素は、Web Map Server (WMS)実装からのmap画像のリクエストにのみ使用する必要があります。つまり、<wms_getmap_request>
要素内の<service_url>
要素では、マップ・ビジュアライゼーション・コンポーネント・インスタンスではなく、WMS実装を指定する必要があります。マップ・ビジュアライゼーション・コンポーネント・インスタンスを指定する場合(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>
要素が含まれます。
例C-5は、マップ・リクエストの<wms_getmap_request>
要素を示しています。
例C-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マップ・テーマの追加
C.3.2 事前定義済WMSマップ・テーマ定義
WMSテーマの事前定義済のXML定義は、「WMSマップ・テーマを追加するためのXML API」と同じパラメータ構造を使用し、オプションのcapabilities_url
属性を追加します。これは、WMSテーマの編集時にMap Builderによって使用されます。capabilities_url
属性が定義されている場合、Map BuilderはGetCapabilities
リクエストを発行して、エディタ・ページにいくつかのUI要素を移入します。
例C-6は、メタデータで事前定義済のWMSテーマを作成する方法を示します。実表名および列名には任意の値を使用できます。この例では、どちらにも'WMS'
が使用されます。
例C-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>');
親トピック: WMSマップ・テーマの追加
C.3.3 WMSマップ・テーマによる認証
WMSデータへのアクセスに認証を必要とするWMSサーバーの場合、テーマ定義に次のものを含める必要があります。
-
<user>
要素: ユーザー名を指定 -
<password>
要素: ユーザー・パスワードを指定Map Builderツールを使用してWMSマップ・テーマを作成する場合、パスワード値は自動的に暗号化されます。図C-1は、Map Builderツールを使用した、認証情報でのWMSテーマの作成を示しています。この図では、認証オプションが選択され(有効化され)、ユーザーとパスワードが指定されています。
例C-7は、認証情報を含むWMSテーマの作成方法を示しています。
例C-7 指定した認証を持つWMSテーマ
<?xml version="1.0" standalone="yes"?> <styling_rules theme_type="wms"> <service_url> http://localhost:7001/mapviewer/wms </service_url> <user> wmsuser </user> <password> ******* </password> <layers> THEME_DEMO_STATES </layers> <version> 1.1.1 </version> <srs> EPSG:4326 </srs> <format> image/png </format> <bgcolor> 0xA6CAF0 </bgcolor> <transparent> true </transparent> <exceptions> application/vnd.ogc.se_xml </exceptions> <vendor_specific_parameters> <vsp> <name> datasource </name> <value> mvdemo </value> </vsp> </vendor_specific_parameters> <capabilities_url> http://localhost:7001/mapviewer/wms? </capabilities_url> </styling_rules>
親トピック: WMSマップ・テーマの追加
C.3.4 GetCapabilitiesレスポンスのカスタマイズ: 追加オプション
マップ・ビジュアライゼーション・コンポーネントのメイン構成ファイルには、GetCapabilitiesレスポンスの一部の情報をカスタマイズするセクションがあります(「WMS GetCapabilitiesレスポンスのカスタマイズ」を参照)。ただし、このマップ・ビジュアライゼーション・コンポーネントのメイン構成ファイルで定義できるプロパティの数は限られており、またGetCapabilitiesレスポンスに含まれる層のいくつかの属性はカスタマイズできません。
リリース12.1.3から、マップ・ビジュアライゼーション・コンポーネントにWMS構成ファイル(wmsConfig.xml
)が追加されました。このWMS構成ファイルに定義された設定は、マップ・ビジュアライゼーション・コンポーネントのメイン構成ファイルで定義された類似のWMS設定をオーバーライドします。
wmsConfig.xml
には、次の要素を含めることができます。
- カスタムWMS Capabilitiesパラメータ(<custom_parameters>要素)
- カスタムWMS Capabilitiesサービス属性(<service_attributes>要素)
- カスタムWMS層属性(<layer_attributes>要素)
- カスタムWMS地物情報(<get_feature_info>要素)
親トピック: WMSマップ・テーマの追加
C.3.4.1 カスタムWMS Capabilitiesパラメータ(<custom_parameters>要素)
<custom_parameters>
要素では、次の属性を使用できます。
-
host
属性では、該当するマップ・ビジュアライゼーション・コンポーネント・サーバーに発行される今後のWMSリクエストでクライアントが使用するサービス・リクエストURLのホスト部を指定します。 -
port
属性では、該当するマップ・ビジュアライゼーション・コンポーネント・サーバーに発行される今後のWMSリクエストでクライアントが使用するサービス・リクエストURLのポート部を指定します。 -
protocol
属性では、該当するマップ・ビジュアライゼーション・コンポーネント・サーバーに発行される今後のWMSリクエストでクライアントが使用するサービス・リクエストURLのプロトコル部を指定します。 -
default_datasource
属性は、Capabilitiesのレスポンスの取得に使用されるベース・データソースを指定します。この属性が定義されていない場合、データソースWMS
が使用され、そのデータソースがこのマップ・ビジュアライゼーション・コンポーネント・サーバーに存在する必要があります。 -
public_datasources
属性には、getCapabilitiesレスポンスにどのデータソースのコンテンツをリストするかを指定します。この属性が定義されていない場合、サーバーに存在するすべてのデータソース・コンテンツがリストされます。 -
use_text_xml
属性では、デフォルトで、getCapabilitiesの場合にも標準text/xml
が使用されます。この属性をfalse
に設定すると、OGC 1.1.1仕様が使用されます(たとえば、application/vnd.ogc.wms_xml
)。
次に例を示します。
<custom_parameters host="www.my_corp.com" port="80" protocol="http" default_datasource="mvdemo" public_datasources="mvdemo, wms"> </custom_parameters>
C.3.4.2 カスタムWMS Capabilitiesサービス属性(<service_attributes>要素)
<service attributes>要素は、マップ・ビジュアライゼーション・コンポーネントのメイン構成ファイルに定義されたこれらの値をオーバーライドします。次に例を示します。
<service_attributes> <title> WMS interface provided by OracleFMW MapViewer </title> <abstract> This WMS service is for demonstration. </abstract> <keyword_list> <keyword>Oracle</keyword> <keyword>MapViewer</keyword> <keyword>Spatial and Graph</keyword> </keyword_list> <online_resource> http://localhost:7001/mapviewer/wms </online_resource> <contact_information> <ContactPersonPrimary> <ContactPerson>John Doe</ContactPerson> <ContactOrganization>My Corp.</ContactOrganization> </ContactPersonPrimary> <ContactPosition>Sr. Manager</ContactPosition> <ContactAddress> <AddressType>US Street</AddressType> <Address>1 MyCorp drv</Address> <City>Nashua</City> <StateOrProvince>NH</StateOrProvince> <PostCode>03062</PostCode> <Country>USA</Country> </ContactAddress> <ContactVoiceTelephone>18001122333</ContactVoiceTelephone> <ContactFacsimileTelephone></ContactFacsimileTelephone> <ContactElectronicMailAddress>jdoe@my_corp.com</ContactElectronicMailAddress> </contact_information> <Fees>None</Fees> <AccessConstraints>None whatsoever</AccessConstraints> </service_attributes>
C.3.4.3 カスタムWMS層属性(<layer_attributes>要素)
WMS OGC仕様では、いくつかの層属性が定義されています。層の属性リストには、要約、キーワード・リスト、SRSリスト、スタイル、属性およびその他が含まれます。
<layer_attributes>
要素を使用してマップ・ビジュアライゼーション・コンポーネント・メタデータ(ベース・マップおよびテーマ)のカスタム属性を定義できます。WMS層は、マップ・ビジュアライゼーション・コンポーネントのテーマおよびベース・マップと関連付けられます。すべての層属性はオプションであり、定義されている場合、それらはGetCapabilitiesレスポンスを補完します。
例C-8は、ベース・マップおよびテーマのカスタム・パラメータを持つ<layer_attributes>
要素を示しています。この例では、ベース・マップDEMO_MAPにはカスタム要素<abstract>
が定義されていますが、テーマTHEME_DEMO_STATESにはカスタム要素<abstract>
、<keywordlist>
、<srs>
および<style>
が定義されています。<metadata>
要素では、タイプ属性にマップ・ビジュアライゼーション・コンポーネントのテーマの場合、値themeを使用し、マップ・ビジュアライゼーション・コンポーネントのベース・マップの場合、値basemapを使用します。type
属性が定義されていないか、値がtheme
またはbasemap
に等しくない場合は、デフォルトでtheme
が使用されます。
例C-9は、これらのカスタム属性を含むGetCapabilitiesレスポンスの一部を示しています。
例C-8 カスタムWMS層属性
<layer_attributes> <datasource name="mvdemo"> <metadata name="DEMO_MAP" type="basemap"> <abstract>Collection of US States</abstract> </metadata> <metadata name="THEME_DEMO_STATES" type="theme" queryable="1" cascaded="0" opaque="1" noSubsets="0" fixedWidth="500" fixedHeight="400"> <abstract>US States</abstract> <keywordlist>keyword1,keyword2,keyword3</keywordlist> <srs>EPSG:4203,EPSG:20248</srs> <style> <title>Style title</title> <name>Style name</name> <abstract>Style abstract</abstract> <stylesheeturl> <format>Stylesheet format</format> <onlineresource> <href>http://www.yoururl.com/styledata.html</href> <type>simple</type> </onlineresource> </stylesheeturl> <styleurl> <format>Styles format</format> <onlineresource> <href>http://www.yoururl.com/style.html</href> <type>simple</type> </onlineresource> </styleurl> <legendurl> <format>Legend format</format> <width>500</width> <height>500</height> <onlineresource> <href>http://www.yoururl.com/legendurl.html</href> <type>simple</type> </onlineresource> </legendurl> </style> ... </metadata> </datasource> </layer_attributes>
例C-9 カスタム属性を含むGetCapabilitiesレスポンス
<Layer> <Name>DEMO_MAP</Name> <Title>Basemap DEMO_MAP</Title> <Abstract>Collection of US States</Abstract> <SRS>EPSG:4326</SRS> <LatLonBoundingBox maxy="90.0" maxx="180.0" miny="-90.0" minx="-180.0"/> <Layer fixedHeight="400" fixedWidth="500" noSubsets="0" opaque="1" cascaded="0" queryable="1"> <Name>THEME_DEMO_STATES</Name> <Title>THEME_DEMO_STATES</Title> <Abstract>US States</Abstract> <KeywordList> <Keyword>keyword1</Keyword> <Keyword>keyword2</Keyword> <Keyword>keyword3</Keyword> </KeywordList> <SRS>EPSG:4326</SRS> <SRS>EPSG:4203</SRS> <SRS>EPSG:20248</SRS> <BoundingBox resy="5.0E-8" resx="5.0E-8" maxy="71.33268128071118" maxx="180.0" miny="-14.605189123107024" minx="-180.0" SRS="EPSG:4326"/> <BoundingBox resy="5.0E-8" resx="5.0E-8" maxy="2.06926736125942E7" maxx="5.5812377162013E7" miny="-1.54158038049741E9" minx="-5.74425799715062E8" SRS="EPSG:4203"/> <BoundingBox resy="5.0E-8" resx="5.0E-8" maxy="2.06929693795843E7" maxx="6.15958436393193E7" miny="-1.74609707025816E9" minx="-6.32398501646291E8" SRS="EPSG:20248"/> <Style> <Name>Style name</Name> <Title>Style title</Title> <Abstract>Style abstract</Abstract> <LegendURL height="500" width="500"> <Format>Legend format</Format> <OnlineResource xlink:href="http://www.yoururl.com/legendurl.html" xlink:type="simple"/> </LegendURL> <StyleSheetURL> <Format>Stylesheet format</Format> <OnlineResource xlink:href="http://www.yoururl.com/styledata.html" xlink:type="simple"/> </StyleSheetURL> <StyleURL> <Format>Stylesheet format</Format> <OnlineResource xlink:href="http://www.yoururl.com/style.html" xlink:type="simple"/> </StyleURL> </Style> <ScaleHint max="1.5E8" min="0.0"/> </Layer> ... </Layer>
C.3.4.4 カスタムWMS地物情報(<get_feature_info>要素)
次の要素は、<get_feature_info>
要素で使用できます。これらは、事前定義済マップ・ビジュアライゼーション・コンポーネント・テーマに対するデフォルトの半径(値および単位)の定義に使用できます。
-
name
属性は、事前定義済テーマの名前を指定します。 -
datasource
属性は、ビジュアライゼーション・コンポーネント・データソースを指定します。 -
radius
属性は、radius
パラメータが指定されていない場合にwithin_radius
GetFeatureInfoリクエストで使用されるテーマのデフォルトの半径の値を指定します。 -
unit
属性は、デフォルトの半径の単位を指定します。デフォルトは、m
(メートル)です。
次に例を示します。
<get_feature_info> <theme name="theme_demo_states" datasource="mvdemo" radius="500" unit="km" /> </get_feature_info>