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.01.1.01.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>

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>');

C.3.3 WMSマップ・テーマによる認証

WMSデータへのアクセスに認証を必要とするWMSサーバーの場合、テーマ定義に次のものを含める必要があります。

  • <user>要素: ユーザー名を指定

  • <password>要素: ユーザー・パスワードを指定

    Map Builderツールを使用してWMSマップ・テーマを作成する場合、パスワード値は自動的に暗号化されます。図C-1は、Map Builderツールを使用した、認証情報でのWMSテーマの作成を示しています。この図では、認証オプションが選択され(有効化され)、ユーザーとパスワードが指定されています。

    図C-1 Map Builderを使用したWMSテーマでの認証の指定

    図C-1の説明が続きます
    「図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>

C.3.4 GetCapabilitiesレスポンスのカスタマイズ: 追加オプション

マップ・ビジュアライゼーション・コンポーネントのメイン構成ファイルには、GetCapabilitiesレスポンスの一部の情報をカスタマイズするセクションがあります(「WMS GetCapabilitiesレスポンスのカスタマイズ」を参照)。ただし、このマップ・ビジュアライゼーション・コンポーネントのメイン構成ファイルで定義できるプロパティの数は限られており、またGetCapabilitiesレスポンスに含まれる層のいくつかの属性はカスタマイズできません。

リリース12.1.3から、マップ・ビジュアライゼーション・コンポーネントにWMS構成ファイル(wmsConfig.xml)が追加されました。このWMS構成ファイルに定義された設定は、マップ・ビジュアライゼーション・コンポーネントのメイン構成ファイルで定義された類似のWMS設定をオーバーライドします。

wmsConfig.xmlには、次の要素を含めることができます。

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>