プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle MapViewerユーザーズ・ガイド
12c リリース2 (12.2)
E79361-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

F MapViewerでのOGC WMTSのサポート

MapViewerは、Open GIS Consortium (OGC)のWeb Map Tile Service (WMTS)プロトコル、特にWMS 1.0.0の実装仕様を使用した、配信データのレンダリングをサポートします。MapViewerは、OGCドキュメント07-057r7で定義されているGetCapabilities、GetTileおよびGetFeatureInfoリクエストをサポートします。

この付録の主な項目は、次のとおりです。

F.1 MapViewerのWMTSサービス

MapViewerのWeb Map Tile Service (WMTS)サービスは、MapViewerのマップ・キャッシュ・サーバー上に構築されるWMTSサーバーを通じて提供されます。したがって、このWMTSサーバーは、クライアントのWMTSリクエストをMapViewerのマップ・キャッシュ・サーバーに委任します。OGCのGetCapabilities、GetTileおよびGetFeatureInfo操作がサポートされます。GetCapabilitiesおよびGetTile操作ではKVPおよびRESTの2種類のエンコーディングがサポートされますが、GetFeatureInfo操作ではKVPエンコーディングのみがサポートされます。GetFeatureInfoリクエストに対するレスポンスは、text/xml、text/htmlおよびapplication/jsonの3つの形式(infoformat属性で指定)のいずれかでエンコードされます。

通常では、MapViewerのWMTSサービスを通じて、MapViewerのすべてのマップ・キャッシュ・タイル層にアクセスできます。各マップ・キャッシュ・タイル層へのアクセスは、mapViewerConfig.xmlファイルと同じフォルダに格納されるWMTSサービス・ポリシー・ファイルwmtsConfig.xmlを編集してカスタマイズできます。WMTSサービス・ポリシー・ファイルでMapViewerサーバー内の全マップ・キャッシュ・タイル層のサブセットのみを公開することにより、MapViewerのWMTSサービスを制限できます(詳細は1.6.2.13項を参照)。

例F-1および例F-2は、ポリシー・ファイルを使用してMapViewerのWMTSサーバーにタイル層を公開する方法を示しています。最初の例はタイル層を指定するポリシー・ファイル、2番目の例はタイル層の定義を示しています。

  • 例F-1は、WMTSポリシー・ファイルです。このファイルでは、データソースMVDEMOのTEST_TLという1つのマップ・キャッシュ・タイル層のみをMapViewerのWMTSサービスに公開しています。このポリシー・ファイルにサービス・プロバイダに関する情報も含めることができます。

    例F-1 WMTSポリシー・ファイル(wmtConfig.xml)

    <wmts_config>
         <public_datasources>
            <public_datasource name="MVDEMO">
              <tile_layers>
                <tile_layer name="TEST_TL"/>
               </tile_layers>
            </public_datasource>
         </public_datasources>
       <ServiceAttributes>              
        <ServiceIdentification> 
                <Title>Web Map Tile Service by myCorp</Title> 
                <Abstract> U.S. maps for state and county boundaries, highway networks, and big cities.</Abstract>
                <Keywords> 
                  <Keyword>Maps</Keyword>
                  <Keyword>U.S. State, County Boundaries</Keyword>
                  <Keyword>U.S. Interstate Highways</Keyword>
                  <Keyword>U.S. Cities</Keyword>
                </Keywords> 
                <Fees>none</Fees> 
                <AccessConstraints>none</AccessConstraints> 
        </ServiceIdentification>     
        <ServiceProvider> 
          <ProviderName>provider's name</ProviderName> 
            <ProviderSite url="http://www.myCorp.com/mySite"/> 
            <ServiceContact> 
              <IndividualName>my name</IndividualName> 
              <PositionName>technical support specialist</PositionName> 
              <ContactInfo> 
                <Phone> 
                  <Voice>+1 800 321 1234</Voice> 
                  <Facsimile>+1 800 321 1235</Facsimile> 
                </Phone> 
                <Address> 
                  <DeliveryPoint>123 My Street</DeliveryPoint> 
                  <City>Nashua</City> 
                  <AdministrativeArea>New Hampshire</AdministrativeArea> 
                  <PostalCode>12345-4321</PostalCode> 
                  <Country>U.S.</Country> 
                  <ElectronicMailAddress>myname@mycompany.com</ElectronicMailAddress> 
                </Address> 
              </ContactInfo> 
          </ServiceContact> 
        </ServiceProvider> 
      </ServiceAttributes>
    </wmts_config>
    
  • 例F-2は、データソースMVDEMOに対するスキーマのTEST_TLタイル層のマップ・タイル層定義です。

    例F-2 データソースのタイル層定義

    SQL> select definition from  user_sdo_cached_maps where name='TEST_TL';
     
    DEFINITION
    --------------------------------------------------------------------------------
    <map_tile_layer name="TEST_TL" image_format="PNG" http_header_expires="168.0" concurrent_fetching_threads="3"> 
       <internal_map_source base_map="DEMO_MAP" data_source="MVDEMO"/>
       <coordinate_system srid="8307" minX="-180" maxX="180" minY="-90" maxY="90"/>
       <tile_image width="256" height="256"/>
       <tile_dpi value="90.7142857"/>
       <tile_meters_per_unit value="111319.49079327358"/>
       <zoom_levels levels="19" min_scale="2132.729583849784" max_scale="559082264.0287178">
          <zoom_level tile_width="360.0000" tile_height="360.0000" scale="5.590822640287178E8"/>
          <zoom_level tile_width="180.0000" tile_height="180.0000" scale="2.795411320143589E8"/>
          <zoom_level tile_width="90.0000" tile_height="90.00000" scale="1.3977056600717944E8"/>
          <zoom_level tile_width="45.0000" tile_height="45.00000" scale="6.988528300358972E7"/>
          <zoom_level tile_width="22.5000" tile_height="22.50000" scale="3.494264150179486E7"/>
          <zoom_level tile_width="11.2500" tile_height="11.25000" scale="1.747132075089743E7"/>
          <zoom_level tile_width="5.6250" tile_height="5.62500" scale="8735660.375448715"/>
          <zoom_level tile_width="2.8125" tile_height="2.81250" scale="4367830.1877243575"/>
          <zoom_level tile_width="1.40625" tile_height="1.40625" scale="2183915.0938621787"/>
          <zoom_level tile_width="0.703125" tile_height="0.703125" scale="1091957.5469310894"/>
          <zoom_level tile_width="0.3515625" tile_height="0.3515625" scale="545978.7734655447"/>
          <zoom_level tile_width="0.17578125" tile_height="0.17578125" scale="272989.38673277234"/>
          <zoom_level tile_width="0.087890625" tile_height="0.087890625" scale="136494.693366386"/>
          <zoom_level tile_width="0.0439453125" tile_height="0.0439453125" scale="68247.34668319"/>
          <zoom_level tile_width="0.02197265625" tile_height="0.02197265625" scale="34123.6733415"/>
          <zoom_level tile_width="0.010986328126" tile_height="0.010986328126" scale="17061.8366707"/>
          <zoom_level tile_width="0.0054931640633" tile_height="0.0054931640633" scale="8530.91833539"/>
          <zoom_level tile_width="0.00274658203168" tile_height="0.00274658203168" scale="4265.45916769"/>
          <zoom_level tile_width="0.001373291015841" tile_height="0.001373291015841" scale="2132.72958384"/>
       </zoom_levels>
    </map_tile_layer>
    

MapViewerサーバーにその他のデータソースが存在するかどうか、または指定されたデータソースにその他のマップ・キャッシュ・タイル層が存在するかどうかにかかわらず、ポリシー・ファイルが例F-1「WMTSポリシー・ファイル(wmtConfig.xml)」のように指定されている場合、公開されるWMTS層はデータソースMVDEMOのマップ・キャッシュ・タイル層TEST_TLのみです(例F-2「データソースのタイル層定義」を参照)。

F.2 WMTS操作

MapViewerは、OGC WMTS 1.0.0標準で指定されたGetCapabilities、GetTileおよびGetFeatureInfo操作をサポートします。また、この標準では定義されていないが、MapViewerのWMTS操作の柔軟性を高めるいくつかのMapViewer固有のパラメータもサポートされます。

このセクションでは、次のトピックについて説明します。

F.2.1 GetCapabilities操作のサポート

MapViewerサーバーがWMTS GetCapabilitiesリクエストを受信すると、そのWMTSサーバーはOGC WMTS仕様に従って使用可能なマップ・キャッシュ・タイル層の定義をXML文書に変換します。(アクセス可能なキャッシュ・タイル層は、wmtsConfig.xmlポリシー・ファイルによって定義されています(存在する場合)。そうでない場合は、WMTSサーバーに使用可能なすべてのデータソースからのすべてのマップ・キャッシュ・タイル層が使用されます。)次に、XML文書がクライアントに返されます。wmtsConfig.xmlポリシー・ファイルにサービス・プロバイダに関する情報が指定されている場合、返されるXML文書内にその情報が提供されます。

この項には、KVPエンコーディングのGetCapabilitiesリクエストとそのレスポンス、およびRESTエンコーディングのGetCapabilitiesリクエストとそのレスポンスが含まれています。KVPまたはRESTエンコーディングのどちらのリクエストの場合にも、次の形式のベースURLが必要です。

http://<host>:<port>/mapviewer/wmts

<host>および<port>は、MapViewerサーバーのホストおよびHTTPポートを表します。コンテキスト・パス/mapviewer/wmtsは、MapViewerのWMTSインタフェースです。

例F-3は、次のKVPコーディングのGetCapabilitiesリクエスト例からのレスポンスです。

http://localhost:8088/mapviewer/wmts?REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0

例F-3 KVPエンコーディングのGetCapabilitiesリクエストからのレスポンス

<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0"
xmlns:ows="http://www.opengis.net/ows/1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gml="http://www.opengis.net/gml"
xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd"
version="1.0.0">
<ows:ServiceIdentification>
  <ows:Title>Web Map Tile Service by myCorp</ows:Title>
  <ows:Abstract>U.S. maps for state and county boundaries, highway networks, and big cities.</ows:Abstract>
  <ows:Keywords>
    <ows:Keyword>Maps</ows:Keyword>
    <ows:Keyword>U.S. State and County Boundaries</ows:Keyword>
    <ows:Keyword>U.S. Interstate Highways</ows:Keyword>
    <ows:Keyword>U.S. Cities</ows:Keyword>
  </ows:Keywords>
  <ows:ServiceType>OGC WMTS</ows:ServiceType>
  <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
  <ows:Fees>none</ows:Fees>
  <ows:AccessConstraints>none</ows:AccessConstraints>
</ows:ServiceIdentification>
<ows:ServiceProvider>
  <ows:ProviderName>provider's name</ows:ProviderName>
  <ows:ProviderSite xlink:href="http://www.myCorp.com/mySite" />
  <ows:ServiceContact>
    <ows:PositionName>technical support specialist</ows:PositionName>
    <ows:ContactInfo>
      <ows:Phone>
        <ows:Voice>+1 800 321 1234</ows:Voice>
        <ows:Facsimile>+1 800 321 1235</ows:Facsimile>
      </ows:Phone>
      <ows:Address>
        <ows:DeliveryPoint>123 My Street</ows:DeliveryPoint>
        <ows:City>Nashua</ows:City>
        <ows:AdministrativeArea>New Hampshire</ows:AdministrativeArea>
        <ows:PostalCode>12345-4321</ows:PostalCode>
        <ows:Country>U.S.</ows:Country>
        <ows:ElectronicMailAddress>myname@mycompany.com</ows:ElectronicMailAddress>
      </ows:Address>
    </ows:ContactInfo>
  </ows:ServiceContact>
</ows:ServiceProvider>
<ows:OperationsMetadata>
  <ows:Operation name="GetCapabilities">
    <ows:DCP>
      <ows:HTTP>
        <ows:Get xlink:href="http://localhost:8088/mapviewer/wmts?">
          <ows:Constraint name="GetEncoding">
            <ows:AllowedValues>
              <ows:Value>KVP</ows:Value>
            </ows:AllowedValues>
          </ows:Constraint>
        </ows:Get>
      </ows:HTTP>
    </ows:DCP>
  </ows:Operation>
  <ows:Operation name="GetTile">
    <ows:DCP>
      <ows:HTTP>
        <ows:Get xlink:href="http://localhost:8088/mapviewer/wmts?">
          <ows:Constraint name="GetEncoding">
            <ows:AllowedValues>
              <ows:Value>KVP</ows:Value>
            </ows:AllowedValues>
          </ows:Constraint>
        </ows:Get>
      </ows:HTTP>
    </ows:DCP>
  </ows:Operation>
  <ows:Operation name="GetFeatureInfo">
    <ows:DCP>
      <ows:HTTP>
        <ows:Get xlink:href="http://localhost:8088/mapviewer/wmts?">
          <ows:Constraint name="GetEncoding">
            <ows:AllowedValues>
              <ows:Value>KVP</ows:Value>
            </ows:AllowedValues>
          </ows:Constraint>
        </ows:Get>
      </ows:HTTP>
    </ows:DCP>
  </ows:Operation>
</ows:OperationsMetadata>
<Contents>
  <Layer>
    <ows:Title>TEST_TL</ows:Title>
    <ows:Abstract>datasource:MVDEMO,layer:TEST_TL</ows:Abstract>
    <ows:WGS84BoundingBox>
      <ows:LowerCorner>-180.0 -90.0</ows:LowerCorner>
      <ows:UpperCorner>180.0 90.0</ows:UpperCorner>
    </ows:WGS84BoundingBox>
    <ows:Identifier>MVDEMO:TEST_TL</ows:Identifier>
    <Style isDefault="true">
      <ows:Identifier>_null</ows:Identifier>
    </Style>
    <Format>image/png</Format>
    <TileMatrixSetLink>
      <TileMatrixSet>MVDEMO:TEST_TL:EPSG:4326</TileMatrixSet>
      <TileMatrixSetLimits>
        <TileMatrixLimits>
        . . . . . .  <!-- omitted to save space  -->
        <TileMatrixLimits>
          <TileMatrix>MVDEMO:TEST_TL:EPSG:4326:8</TileMatrix>
          <MinTileRow>0</MinTileRow>
          <MaxTileRow>128</MaxTileRow>
          <MinTileCol>0</MinTileCol>
          <MaxTileCol>256</MaxTileCol>
        </TileMatrixLimits>
        . . . . . .  <!-- omitted to save space  -->
      </TileMatrixSetLimits>
    </TileMatrixSetLink>
  </Layer>
  <TileMatrixSet>
    <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326</ows:Identifier>
    <ows:SupportedCRS>urn:ogc:def:crs:EPSG:4326</ows:SupportedCRS>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:0</ows:Identifier>
      <ScaleDenominator>5.590822641167623E8</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>2</MatrixWidth>
      <MatrixHeight>2</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:1</ows:Identifier>
      <ScaleDenominator>2.7954113205838114E8</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>3</MatrixWidth>
      <MatrixHeight>2</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:2</ows:Identifier>
      <ScaleDenominator>1.3977056602919057E8</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>5</MatrixWidth>
      <MatrixHeight>3</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:3</ows:Identifier>
      <ScaleDenominator>6.988528301459529E7</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>9</MatrixWidth>
      <MatrixHeight>5</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:4</ows:Identifier>
      <ScaleDenominator>3.494264150729764E7</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>17</MatrixWidth>
      <MatrixHeight>9</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:5</ows:Identifier>
      <ScaleDenominator>1.747132075364882E7</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>33</MatrixWidth>
      <MatrixHeight>17</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:6</ows:Identifier>
      <ScaleDenominator>8735660.37682441</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>65</MatrixWidth>
      <MatrixHeight>33</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:7</ows:Identifier>
      <ScaleDenominator>4367830.188412205</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>129</MatrixWidth>
      <MatrixHeight>65</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:8</ows:Identifier>
      <ScaleDenominator>2183915.0942061027</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>257</MatrixWidth>
      <MatrixHeight>129</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:9</ows:Identifier>
      <ScaleDenominator>1091957.5471030513</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>513</MatrixWidth>
      <MatrixHeight>257</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:10</ows:Identifier>
      <ScaleDenominator>545978.7735515257</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>1025</MatrixWidth>
      <MatrixHeight>513</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:11</ows:Identifier>
      <ScaleDenominator>272989.38677576283</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>2049</MatrixWidth>
      <MatrixHeight>1025</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:12</ows:Identifier>
      <ScaleDenominator>136494.69338788142</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>4097</MatrixWidth>
      <MatrixHeight>2049</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:13</ows:Identifier>
      <ScaleDenominator>68247.34669394071</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>8193</MatrixWidth>
      <MatrixHeight>4097</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:14</ows:Identifier>
      <ScaleDenominator>34123.673346970354</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>16385</MatrixWidth>
      <MatrixHeight>8193</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:15</ows:Identifier>
      <ScaleDenominator>17061.836673485177</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>32769</MatrixWidth>
      <MatrixHeight>16385</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:16</ows:Identifier>
      <ScaleDenominator>8530.918336742589</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>65537</MatrixWidth>
      <MatrixHeight>32769</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:17</ows:Identifier>
      <ScaleDenominator>4265.459168371294</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>131073</MatrixWidth>
      <MatrixHeight>65537</MatrixHeight>
    </TileMatrix>
    <TileMatrix>
      <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326:18</ows:Identifier>
      <ScaleDenominator>2132.729584185647</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>262145</MatrixWidth>
      <MatrixHeight>131073</MatrixHeight>
    </TileMatrix>
  </TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://localhost:8088/mapviewer/wmts?SERVICE=WMTS&amp;VERSION=1.0.0&amp;REQUEST=getCapabilities"/>
</Capabilities>

例F-4は、次のRESTコーディングのGetCapabilitiesリクエスト例からのレスポンスです。

http://localhost:8088/mapviewer/wmts/1.0.0/WMTSCapabilities.xml

例F-4 RESTエンコーディングのGetCapabilitiesリクエストからのレスポンス

<?xml version="1.0" encoding="UTF-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0"
xmlns:ows="http://www.opengis.net/ows/1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gml="http://www.opengis.net/gml"
xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd"
version="1.0.0">
<ows:ServiceIdentification>
  <!-- omitted to save space, the same as in KVP encoding -->
</ows:ServiceIdentification>
<ows:ServiceProvider>
  <!-- omitted to save space, the same as in KVP encoding -->
</ows:ServiceProvider>
<ows:OperationsMetadata>
  <ows:Operation name="GetCapabilities">
    <ows:DCP>
      <ows:HTTP>
        <ows:Get xlink:href="http://localhost:8088/mapviewer/wmts">
          <ows:Constraint name="GetEncoding">
            <ows:AllowedValues>
              <ows:Value>RESTful</ows:Value>
            </ows:AllowedValues>
          </ows:Constraint>
        </ows:Get>
      </ows:HTTP>
    </ows:DCP>
  </ows:Operation>
  <ows:Operation name="GetTile">
    <ows:DCP>
      <ows:HTTP>
        <ows:Get xlink:href="http://localhost:8088/mapviewer/wmts">
          <ows:Constraint name="GetEncoding">
            <ows:AllowedValues>
              <ows:Value>RESTful</ows:Value>
            </ows:AllowedValues>
          </ows:Constraint>
        </ows:Get>
      </ows:HTTP>
    </ows:DCP>
  </ows:Operation>
  <ows:Operation name="GetFeatureInfo">
    <ows:DCP>
      <ows:HTTP>
        <ows:Get xlink:href="http://localhost:8088/mapviewer/wmts?">
          <ows:Constraint name="GetEncoding">
            <ows:AllowedValues>
              <ows:Value>KVP</ows:Value>
            </ows:AllowedValues>
          </ows:Constraint>
        </ows:Get>
      </ows:HTTP>
    </ows:DCP>
  </ows:Operation>
</ows:OperationsMetadata>
<Contents>
  <Layer>
    <ows:Title>TEST_TL</ows:Title>
    <ows:Abstract>datasource:MVDEMO,layer:TEST_TL</ows:Abstract>
    <ows:WGS84BoundingBox>
      <ows:LowerCorner>-180.0 -90.0</ows:LowerCorner>
      <ows:UpperCorner>180.0 90.0</ows:UpperCorner>
    </ows:WGS84BoundingBox>
    <ows:Identifier>MVDEMO:TEST_TL</ows:Identifier>
    <Style isDefault="true">
      <ows:Identifier>_null</ows:Identifier>
    </Style>
    <Format>image/png</Format>
    <TileMatrixSetLink>
      <TileMatrixSet>MVDEMO:TEST_TL:EPSG:4326</TileMatrixSet>
      <TileMatrixSetLimits>
        . . . . . . <!-- omitted to save space  -->
        <TileMatrixLimits>
          <TileMatrix>8</TileMatrix>
          <MinTileRow>0</MinTileRow>
          <MaxTileRow>128</MaxTileRow>
          <MinTileCol>0</MinTileCol>
          <MaxTileCol>256</MaxTileCol>
        </TileMatrixLimits>
        . . . . . . <!-- omitted to save space  -->
      </TileMatrixSetLimits>
    </TileMatrixSetLink>
    <ResourceURL format="image/png" template="http://localhost:8088/mapviewer/wmts/MVDEMO:TEST_TL/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png" resourceType="tile"/>
  </Layer>
  <TileMatrixSet>
    <ows:Identifier>MVDEMO:TEST_TL:EPSG:4326</ows:Identifier>
    <ows:SupportedCRS>urn:ogc:def:crs:EPSG:4326</ows:SupportedCRS>
    <TileMatrix>
      <ows:Identifier>0</ows:Identifier>
      <ScaleDenominator>5.590822641167623E8</ScaleDenominator>
      <TopLeftCorner>-180.0  90.0</TopLeftCorner>
      <TileWidth>256</TileWidth>
      <TileHeight>256</TileHeight>
      <MatrixWidth>2</MatrixWidth>
      <MatrixHeight>2</MatrixHeight>
    </TileMatrix>
    . . . . . . <!-- omitted to save space  -->
 
  </TileMatrixSet>
</Contents>
<ServiceMetadataURL xlink:href="http://localhost:8088/mapviewer/wmts?SERVICE=WMTS&amp;VERSION=1.0.0&amp;REQUEST=getCapabilities"/>
</Capabilities>

例F-3および例F-4で、<ows:Value>要素の太字テキストは、リクエストのエンコーディングが異なる場合のそれぞれのレスポンスの違いを示しています。(使用するエンコーディングは、アプリケーション固有の設定です。)これらのレスポンス例で、GetTile操作のエンコーディングはGetCapabilitiesリクエストのエンコーディングと同じですが、GetFeatureInfo操作は常にKVPエンコーディングです。

MapViewer WMTSサーバーでは、使用する2つのエンコーディング間に大きなパフォーマンスの違いはありません。

F.2.2 GetTile操作のサポート

MapViewerサーバーがWMTS GetTileリクエストを受信すると、そのWMTSサーバーはリクエストされたタイルをマップ・キャッシュ・サーバーに要求します。マップ・キャッシュ・サーバーはWMTS層のアクセスを最初にチェックし、層にアクセスできる場合は、リクエストされたWMTSタイルのタイル行、タイル列およびその他のパラメータをMapViewerマップ・キャッシュ・タイル層の仕様に変換します。次に、マップ・キャッシュ・サーバーがそのタイルを準備し、MapViewerのWMTSサーバーに返します。言い換えると、WMTS GetCapabilities XML文書に公開されるMapViewer WMTS層は、MapViewerマップ・キャッシュ・サーバーによって管理されるMapViewerマップ・キャッシュ・タイル層に物理的にマップされる「仮想の」層として見ることができます。

WMTSサーバーはGetTileリクエストを受信すると、MapViewerマップ・キャッシュ・サーバーにそのタイルを作成するように要求し、WMTSサーバーがそれをクライアントに返します。マップ・キャッシュ・サーバーはWMTSサーバーからこのようなリクエストを受信すると、常に仕様に従って(画像サイズや枠ボックスなど)、画像を生成します。マップ・キャッシュ・サーバーの画像生成プロセスは、キャッシュから必要なタイルを取得して要求されたWMTSタイルを「アセンブルする」(モザイク操作や切取り)といった、きわめて簡単なものです。また、キャッシュにタイルがない場合、マップ・キャッシュ・サーバーは別のサーバー(MapViewerのマップ・サーバー)にタイルの生成を要求します。

この項には、KVPおよびRESTエンコーディングのGetTileリクエストおよびレスポンスが含まれています。

次はKVPコーディングのGetTileリクエストです(すべてのWMTSリクエストは1行である必要があることに注意してください)。

http://localhost:8088/mapviewer/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=MVDEMO:TEST_TL&STYLE=_null&format=image/png&TileMatrixSet=MVDEMO:TEST_TL:EPSG:4326&TileMatrix=MVDEMO:TEST_TL:EPSG:4326:8&TileRow=33&TileCol=77

図F-1は、このリクエストに対するレスポンスのタイル画像を示しています。

図F-1 GetTileリクエストに対するレスポンスの画像タイル

図F-1の説明が続きます
「図F-1 GetTileリクエストに対するレスポンスの画像タイル」の説明

次は同じ基本GetTileリクエストですが、RESTエンコーディングです(すべてのWMTSリクエストは1行である必要があることに注意してください)。

http://localhost:8088/mapviewer/wmts/MVDEMO:TEST_TL/MVDEMO:TEST_TL:EPSG:4326/8/33/77.png

レスポンスの画像は、図F-1「GetTileリクエストに対するレスポンスの画像タイル」と同じです。

F.2.2.1 WMTS層およびマップ・キャッシュ・タイル層のマップ・タイル

MapViewerマップ・キャッシュ・サーバーはタイル層のマップ・タイルをキャッシュできますが、WMTSサーバーはWMTS層のマップ・タイルをキャッシュしません。言い換えると、WMTSサーバーのマップ・タイルは物理的に存在するものではなく、むしろMapViewerマップ・キャッシュ・タイル層にマップされています。

たとえば、F.2.2.1項「WMTS層およびマップ・キャッシュ・タイル層のマップ・タイル」のWMTS GetTileリクエストを送信する前にマップ・キャッシュ・タイル層のキャッシュを空にした場合は、次の処理が発生します。

  1. WMTSサーバーはリクエストを受信すると、それをマップ・キャッシュ・サーバーに渡します。

  2. マップ・キャッシュ・サーバーは、リクエストを内部画像マップ・リクエストに変換してタイル画像を生成します(タイルの枠ボックスで定義された空間ディメンション、画像サイズで定義された256x256などのサイズを使用)。

  3. 必要なマップ・キャッシュ・タイル層のタイルが識別されます。

  4. 各マップ・キャッシュ・タイル層のタイルについて、マップ・キャッシュ・サーバーはキャッシュからの取得を試みます。キャッシュからタイルを得られない場合は、別のサーバー、つまりMapViewerマップ・サーバーにマップ・リクエストを送信してタイル画像を生成します(この事例ではキャッシュを空にした直後であるため、こうなります)。

  5. すべての必要なマップ・キャッシュ・タイル層のマップ・タイルがフェッチされると、WMTSタイル画像がレンダリングされ、返されます(必要に応じて、モザイク操作および切取りが行われる)。

その後クライアントが同じWMTSタイルのリクエストを送信した場合、前述のステップが繰り返されますが、唯一の違いはステップ4です。ステップ4で、必要なマップ・キャッシュ・タイル層のタイルはキャッシュから得られます。同じタイルの再度の要求では、ステップ4の最も高価な処理が回避されるため、はるかに高速になります。

通常、マップ・キャッシュ・タイル層のタイルと、GetTileリクエストで指定されるWMST層のタイルの間には、1対1の一致はありません。それは、MapViewerマップ・キャッシュ・タイル層が使用する座標系は左下隅に原点がありますが(tile_x, tile_y)、WMTSでは左上隅を原点とする座標系を使用するためです(tile_column, tile_row)。たとえば、(tile_x=0, tile_y=0)のMapViewerの画像タイルは左下隅のタイルですが、(tile_column=0, tile_row=0)のWMTSタイルは左上隅にあります。

データ領域全体は、その対応する原点から始まる、複数のタイルに分割されています。また各ズーム・レベルの最後のタイル(tile_x, tile_y)または(tile_column, tile_row)は、常にデータの上限(MapViewerタイルの座標系の場合)または下限(WMTSタイルの座標系の場合)で正確に位置合せされるとは限りません。したがって、2つのシステム間にはタイルの1対1の一致がない場合もあります。ただし、最後のタイルがデータの境界で正確に位置合せされている場合は、1対1の一致が存在します。

たとえば、F.2.2.1項「WMTS層およびマップ・キャッシュ・タイル層のマップ・タイル」のGetTileリクエストを使用してズーム・レベル8のWMTSタイル(tile_column=77, tile_row=33)を要求した場合、そのタイルはマップ・キャッシュ・タイル層の(tile_x=77, tile_y=94)のタイルと正確に一致します。これらの2つのタイルが一致する理由は次のとおりです。

  • タイル層の定義により(例F-2「データソースのタイル層定義」を参照)、どちらの座標系も最後のタイルがデータ境界で正確に位置合せされているため、WMTSタイルとマップ・キャッシュ・タイル層のタイルには1対1の一致があることが確実になります。

  • WMTSのtile_row 33は、総タイル行が128となるように、マップ・キャッシュ・サーバーのtile_y 94を補完します(一方の原点は左上隅で、他方は左下です)。例F-3「KVPエンコーディングのGetCapabilitiesリクエストからのレスポンス」に示すように、<MaxTileRow>要素の値は128です。

    また、tile_xおよびtile_columnの値はどちらも西の境界から開始して右方向に進むため、これらの値が同じであることにも注意してください。

MapViewerにWMTSサービス用のタイル層を作成する場合は、<tile_dpi>要素の値を0.28 mmにする必要があります。この値は、ドット/インチ(dpi)表記で<tile_dpi value="90.7142857"/>と同等です。この要素が指定されていない場合、MapViewerのマップ・キャッシュ・タイル層では、タイルを生成するときにタイル層に対して異なる値が使用される場合があります(たとえば、dpiを96に設定するなど)。WMTSが使用するdpi値は90.7142857であるため、この値が異なると、WMTSサービスが遅くなり、マップ・タイルの品質が低下する場合があります。

WGS84 (経度・緯度)測地基準系を使用してWMTSサービス用のタイル層をMapViewerに作成する場合、<tile_meters_per_unit>要素には、赤道に沿って1度の弧長に対応する値(<tile_meters_per_unit value="111319.49079327358"/>)を指定する必要があります。<tile_meters_per_unit>要素が指定されていない場合は、MapViewerが内部で値を計算します。ただし、111319.49079327358の値は、WGS84測地基準系で他のWMTSサービス・プロバイダによって一般的に使用されているため、<tile_meters_per_unit value="111319.49079327358"/>を指定すると、MapViewerのWMTS層と他のサービス・プロバイダのタイル層が一致するようになります。

F.2.3 GetFeatureInfo操作のサポート

MapViewerでは、次のGetFeatureInfo操作オプションがサポートされます。

  • 標準OGC GetFeatureInfoリクエスト

  • ポイント(x,y)でのMapViewer固有のGetFeatureInfoリクエスト

  • 枠ボックス内のMapViewer固有のGetFeatureInfoリクエスト

これらの操作によって返される地物情報は、MapViewerのベース・マップ定義、テーマ定義、および対象領域に応じて選択された地物に基づいています。ベース・マップには、各テーマの参照可能なスケール範囲が定義され、各テーマの情報列は<styling_rules>要素の子要素である<hidden_info>の子要素<field>に定義されます。テーマの<styling_rules>要素に情報列が指定されていない場合、GetFeatureInfoレスポンスにはそのテーマの地物に関する情報が含まれません。

GetFeatureInfoプロセスの各オプションの対象領域は次のように計算されます。

  • 標準OGC GetFeatureInfoリクエストの場合、ピクセルの列と行、および与えられたズーム・レベルでのそのタイルの位置を、ピクセルの重心でマップ・キャッシュ・タイル層の座標系のポイント(x,y)に変換できます。このポイントを中心とした、このズーム・レベルの5x5ピクセルのウィンドウにより対象領域が定義されます。

  • MapViewer固有の(x, y)ポイントでのリクエストの場合も、指定された(x,y)値を中心とした、そのレベルの5x5ピクセルのウィンドウが対象領域として使用されます。

  • MapViewer固有の枠ボックスのGetFeatureInfoリクエスト・オプションの場合、指定された枠ボックス(min_x, min_y, max_x, max_y)と、そのズーム・レベルの画像タイルのそれらに対応する(column, row)の値が対象領域として使用されます。

MapViewerでは、GetFeatureInfoリクエストで追加のMapViewer固有のパラメータであるchildLayer属性を指定できます(例: childLayer=myTheme1, myTheme2)。このパラメータが指定されている場合、指定されたテーマ(この例ではmyTheme1およびmyTheme2のみ)の地物情報のみが含まれます。このパラメータが指定されていない場合は、ベース・マップ定義内のすべてのテーマがGetFeatureInfoリクエスト用として考慮されます。

内容は次のとおりです。

これらのサブトピックの例(例F-5および例F-6)では、TEST_TLというタイル層のベース・マップ定義およびテーマ定義が使用されています。

例F-5 タイル層TEST_TLのベース・マップ定義

<?xml version="1.0" standalone="yes"?>
  <map_definition>
    <theme name="THEME_DEMO_STATES" min_scale="" max_scale="0.0" scale_mode="RATIO"/>
    <theme name="THEME_DEMO_COUNTIES" min_scale="8500000.0" max_scale="0.0" scale_mode="RATIO"/>
    <theme name="THEME_DEMO_HIGHWAYS_LINE" min_scale="1.0E8" max_scale="4.5E7" scale_mode="RATIO"/>
    <theme name="THEME_DEMO_HIGHWAYS" min_scale="4.5E7" max_scale="0.0" scale_mode="RATIO"/>
    <theme name="THEME_DEMO_BIGCITIES" min_scale="" max_scale="0.0" scale_mode="RATIO"/>
    <theme name="THEME_DEMO_CITIES" min_scale="7500000.0" max_scale="0.0" scale_mode="RATIO"/>
  </map_definition>

例F-6 タイル層TEST_TLのテーマの名前およびスタイリング・ルール

THEME_DEMO_STATES
<?xml version="1.0" standalone="yes"?>
<styling_rules>
  <hidden_info>
    <field column="STATE" name="Name"/>
    <field column="STATE_ABRV" name="Abrv."/>
    <field column="TOTPOP" name="Population"/>
  </hidden_info>
  <rule>
    <features style="C.S02_COUNTRY_AREA"> </features>
    <label column="STATE_ABRV" style="T.S02_STATE_ABBREVS"> 1 </label>
  </rule>
</styling_rules>
 
THEME_DEMO_COUNTIES
<?xml version="1.0" standalone="yes"?>
<styling_rules>
  <hidden_info>
    <field column="COUNTY" name="County"/>
    <field column="FIPSSTCO" name="Fips"/>
    <field column="TOTPOP" name="Population"/>
    <field column="STATE_ABRV" name="State"/>
  </hidden_info>
  <rule>
    <features style="L.S06_BORDER_STATE"> </features>
  </rule>
</styling_rules>
 
THEME_DEMO_CITIES
<?xml version="1.0" standalone="yes"?>
<styling_rules>
  <hidden_info>
    <field column="CITY" name="City"/>
    <field column="POP90" name="Population"/>
  </hidden_info>
  <rule>
    <features style="M.ALL_CITY_L2"> (pop90 between 200000 AND 1000000 ) </featu
res>
    <label column="city" style="T.S07_CITIES_L2"> 1 </label>
  </rule>
  <rule>
    <features style="M.ALL_CITY_L3"> (pop90 &lt; 200000) </features>
    <label column="city" style="T.S07_CITIES_L3"> 1 </label>
  </rule>
</styling_rules>
 
 
THEME_DEMO_HIGHWAYS
<?xml version="1.0" standalone="yes"?>
<styling_rules>
  <hidden_info>
    <field column="HIGHWAY" name="Name"/>
    <field column="ROUTEN" name="No."/>
  </hidden_info>
  <rule>
    <features style="L.S04_ROAD_INTERSTATE"> </features>
    <label column="routen" style="M.HWY_USA_INTERSTATE_NARROW"> (3-length(routen
)) </label>
  </rule>
</styling_rules>

F.2.3.1 OGC GetFeatureInfoリクエスト

次はOGC標準を使用したサンプルGetFeatureInfoリクエストです(すべてのWMTSリクエストは1行である必要があることに注意してください)。

http://localhost:8088/mapviewer/wmts?SERVICE=WMTS&REQUEST=GetFeatureInfo&VERSION=1.0.0&LAYER=MVDEMO:TEST_TL&STYLE=_null&format=image/png&TileMatrixSet=MVDEMO:TEST_TL:EPSG:4326&TileMatrix=MVDEMO:TEST_TL:EPSG:4326:8&TileRow=33&TileCol=76&I=238&J=240&InfoFormat=application/gml%2bxml; version=3.1

例F-7は、このリクエストからのレスポンスを示しています。

例F-7 OGC GetFeatureInfoリクエストからのレスポンス

<?xml version="1.0" encoding="UTF-8"?>
<layers>
  <layer name="THEME_DEMO_CITIES">
    <feature id="1">
      <City>Worcester</City>
      <Population>169759</Population>
    </feature>
  </layer>
  <layer name="THEME_DEMO_BIGCITIES">
  </layer>
  <layer name="THEME_DEMO_HIGHWAYS">
  </layer>
  <layer name="THEME_DEMO_HIGHWAYS_LINE">
  </layer>
  <layer name="THEME_DEMO_COUNTIES">
    <feature id="1">
      <County>Worcester</County>
      <Fips>25027</Fips>
      <Population>709705</Population>
      <State>MA</State>
    </feature>
  </layer>
  <layer name="THEME_DEMO_STATES">
    <feature id="1">
      <State>Massachusetts</State>
      <Abrv.>MA</Abrv.>
      <Population>6016424</Population>
    </feature>
  </layer>
</layers>

F.2.3.2 ポイント(x,y)でのMapViewer GetFeatureInfoリクエスト

次のサンプルMapViewer GetFeatureInfoリクエストは、経度および緯度(xおよびy)の値によって識別されるポイント(この例ではボストン市内のポイント)でのテキスト/HTML形式によるすべてのテーマに関する情報を要求しています(WMTSリクエストは1行である必要があることに注意してください)。

http://localhost:8088/mapviewer/wmts?SERVICE=WMTS&REQUEST=GetFeatureInfo&VERSION=1.0.0&infoformat=text/html&LAYER=MVDEMO:TEST_TL&zoomlevel=8&x=-71.01522133879438&y=42.33731136863662&SRID=8307

このリクエストでは、ポイントの(x,y)座標がパラメータとして指定されています。このポイントはMapViewerによって、ポイントを中心とする、指定されたズーム・レベル(この例では8)の5x5ピクセルの矩形領域に変換され、地物情報を取得する対象領域とされます。リクエストにはchildLayerパラメータがないため、デフォルトで対象領域内のすべての地物が考慮されます。

座標(x, y)が、タイル層で使用されているものとは異なる座標系である場合(空間参照システム)、座標をタイル層の系に変換するためにオプションのSRIDパラメータを指定する必要があります。デフォルト値は、タイル層のSRID値です。

図F-2は、このリクエストからのレスポンスです。

図F-2 ポイント(x,y)でのMapViewer GetFeatureInfoリクエストからのレスポンス

図F-2の説明が続きます
「図F-2 ポイント(x,y)でのMapViewer GetFeatureInfoリクエストからのレスポンス」の説明

F.2.3.3 枠ボックス内のMapViewer GetFeatureInfoリクエスト

次のサンプルMapViewer GetFeatureInfoリクエストは、枠ボックスで定義された対象領域内(この例ではボストン市および一部の周辺コミュニティを含む矩形領域)の2つのテーマ(THEME_DEMO_CITIESおよびTHEME_DEMO_COUNTIES)に関する情報を要求しています(WMTSリクエストは1行である必要があることに注意してください)。

http://localhost:8088/mapviewer/wmts?SERVICE=WMTS&REQUEST=GetFeatureInfo&VERSION=1.0.0&infoformat=text/xml&LAYER=MVDEMO:TEST_TL&childLayer=THEME_DEMO_COUNTIES,THEME_DEMO_CITIES&zoomlevel=8&bbox=-71.32151786220001,42.19361670333521,-70.96354167846667,42.52386233762441&SRID=8307

座標(x, y)が、タイル層で使用されているものとは異なる座標系である場合(空間参照システム)、枠ボックスの座標をタイル層の系に変換するためにオプションのSRIDパラメータを指定する必要があります。デフォルト値は、タイル層のSRID値です。

図F-2は、このリクエストの枠ボックスを示しています。

図F-3 MapViewer GetFeatureInfoリクエストの枠ボックス

図F-3の説明が続きます
「図F-3 MapViewer GetFeatureInfoリクエストの枠ボックス」の説明

例F-8は、このリクエストからのXML形式のレスポンスです。

例F-8 枠ボックス内のMapViewer GetFeatureInfoリクエストからのレスポンス

<layers>
...<layer name="THEME_DEMO_CITIES">
......<feature id="1">
......<City>Boston</City>
......<Population>574283</Population>
......</feature>
...</layer>
...<layer name="THEME_DEMO_COUNTIES">
......<feature id="1">
.........<County>Middlesex</County>
.........<Fips>25017</Fips>
.........<Population>1398468</Population>
.........<State>MA</State>
......</feature>
......<feature id="2">
.........<County>Norfolk</County>
.........<Fips>25021</Fips>
.........<Population>616087</Population>
.........<State>MA</State>
......</feature>
......<feature id="3">
.........<County>Suffolk</County>
.........<Fips>25025</Fips>
.........<Population>663906</Population>
.........<State>MA</State>
......</feature>
......<feature id="4">
.........<County>Essex</County>
.........<Fips>25009</Fips>
.........<Population>670080</Population>
.........<State>MA</State>
......</feature>
...</layer>
</layers>

F.3 MapViewerのWMTSサービスの準備

MapViewerのWMTSサービスを使用するための準備は、次の主要手順に従います。

  1. 事前定義済ジオメトリ・テーマの準備

  2. ベース・マップの準備

  3. タイル層の準備

  4. wmtsConfig.xmlポリシー・ファイルでのタイル層の公開

  5. MapViewer WMTSサービスの検証

F.3.1 事前定義済ジオメトリ・テーマの準備

getFeatureInfoサービスで事前定義済ジオメトリ・テーマから地物情報を取得する必要がある場合、1つ以上の<field>子要素を持つ<hidden_info>要素を使用する必要があります。<field>要素のcolumn属性がgetFeatureInfoレスポンスで返されます。

<hidden_info>要素は、<styling_rules>要素である必要があります。例:

<?xml version="1.0" standalone="yes"?>
<styling_rules>
  <hidden_info>
        <field column="NAME" name="name"/>
        <field column="MAINPAGE" name="mainpage"/>
  </hidden_info>
  .
  .
  .
</styling_rules>

事前定義済ジオメトリ・テーマでのスタイリング・ルールの使用の詳細は、2.3.1.1項「事前定義済空間ジオメトリ・テーマのスタイリング・ルール」を参照してください。

F.3.2 ベース・マップの準備

WMTSテーマを使用できるようにベース・マップ(テーマの集合体)を準備するには、ベース・マップにテーマを追加します。

ベース・マップへのテーマの追加の詳細は、2.4項「マップ」を参照してください。

WMTSテーマの詳細は、2.3.8項「WMTSテーマ」を参照してください。

F.3.3 タイル層の準備

wmtsConfix.xmlポリシー・ファイルに制約がない場合は、MapViewerのタイル層がMapViewer WMTSサーバーのWMTS層になります。たとえば、例F-2「データソースのタイル層定義」でDEMO_MAPというベース・マップが作成されている場合、そのベース・マップを使用してタイル層を作成できます。この項には、次の例が含まれています。各例では、OGC WMTS 1.0.0実装標準の付属書Eに見られるよく知られたスケール・セットを使用しています。

これらの例では、ピクセル・サイズが0.28mmであるOGC WMTS 1.0.0の実装標準に応じて、<tile_dpi>および<tile_meters_per_unit>要素が指定されています。座標(空間参照)系がWGS84の場合、赤道上の1度は111319.49mです。

例F-9 スケール・セットGlobalCRS84Scaleのタイル定義

insert into user_sdo_cached_maps values(
'WMTS_E1',
'wmts annex e1 scale set for GlobalCRS84Scale',
'',
'YES',
'YES',
'<map_tile_layer name="WMTS_E1" image_format="PNG" http_header_expires="168.0" concurrent_fetching_threads="3">
   <internal_map_source base_map="DEMO_MAP" data_source="MVDEMO" />
   <coordinate_system srid="8307" minX="-180" maxX="180" minY="-90" maxY="90"/>
   <internal_map_source base_map="DEMO_MAP" data_source="MVDEMO" db_tile_table=""/>
   <cache_storage root_path=""/>
   <coordinate_system srid="8307" minX="-180" maxX="180" minY="-90" maxY="90"/>
   <tile_image width="256" height="256"/>
   <tile_dpi value="90.7142857"/>
   <tile_meters_per_unit value="111319.49079327358"/>
   <zoom_levels levels="21" min_scale="100" max_scale="5.0E8">
      <zoom_level scale="5.0E8" tile_width="321.9561978791382" tile_height="321.9561978791382"/>
      <zoom_level scale="2.5E8" tile_width="160.9780989395691" tile_height="160.9780989395691"/>
      <zoom_level scale="1.0E8" tile_width="64.39123957582764" tile_height="64.39123957582764"/>
      <zoom_level scale="5.0E7" tile_width="32.19561978791382" tile_height="32.19561978791382"/>
      <zoom_level scale="2.5E7" tile_width="16.09780989395691" tile_height="16.09780989395691"/>
      <zoom_level scale="1.0E7" tile_width="6.439123957582764" tile_height="6.439123957582764"/>
      <zoom_level scale="5.0E6" tile_width="3.219561978791382" tile_height="3.219561978791382"/>
      <zoom_level scale="2.5E6" tile_width="1.609780989395691" tile_height="1.609780989395691"/>
      <zoom_level scale="1.0E6" tile_width="0.6439123957582763" tile_height="0.6439123957582763"/>
      <zoom_level scale="5.0E5" tile_width="0.32195619787913815" tile_height="0.32195619787913815"/>
      <zoom_level scale="2.5E5" tile_width="0.16097809893956908" tile_height="0.16097809893956908"/>
      <zoom_level scale="1.0E5" tile_width="0.06439123957582764" tile_height="0.06439123957582764"/>
      <zoom_level scale="5.0E4" tile_width="0.03219561978791382" tile_height="0.03219561978791382"/>
      <zoom_level scale="2.5E4" tile_width="0.01609780989395691" tile_height="0.01609780989395691"/>
      <zoom_level scale="1.0E4" tile_width="0.006439123957582764" tile_height="0.006439123957582764"/>
      <zoom_level scale="5.0E3" tile_width="0.003219561978791382" tile_height="0.003219561978791382"/>
      <zoom_level scale="2.5E3" tile_width="0.001609780989395691" tile_height="0.001609780989395691"/>
      <zoom_level scale="1.0E3" tile_width="6.439123957582763E-4" tile_height="6.439123957582763E-4"/>
      <zoom_level scale="5.0E2" tile_width="3.2195619787913813E-4" tile_height="3.2195619787913813E-4"/>
      <zoom_level scale="2.5E2" tile_width="1.6097809893956906E-4" tile_height="1.6097809893956906E-4"/>
      <zoom_level scale="1.0E2" tile_width="6.439123957582763E-5" tile_height="6.439123957582763E-5"/>
   </zoom_levels>
</map_tile_layer>',
'DEMO_MAP','');

例F-10 スケール・セットGlobalCRS84Pixelのタイル定義

insert into user_sdo_cached_maps values(
'WMTS_E2',
'wmts annex e2 scale GlobalCRS84Pixel',
'',
'YES',
'YES',
'<map_tile_layer name="WMTS_E2" image_format="PNG" http_header_expires="168.0" concurrent_fetching_threads="3">
   <internal_map_source base_map="DEMO_MAP" data_source="MVDEMO"/>
   <coordinate_system srid="8307" minX="-180" maxX="180" minY="-90" maxY="90"/>
   <tile_image width="256" height="256"/>
   <tile_dpi value="90.7142857"/>
   <tile_meters_per_unit value="111319.49079327358"/>
   <zoom_levels levels="19" min_scale="1104.360027711047" max_scale="795139219.9519541">
      <zoom_level scale="795139219.9519541" tile_width="512.000000" tile_height="512.000000"/>
      <zoom_level scale="397569609.9759771" tile_width="256.000000" tile_height="256.000000"/>
      <zoom_level scale="198784804.9879885" tile_width="128.000000" tile_height="128.000000"/>
      <zoom_level scale="132523203.3253257" tile_width="85.333333" tile_height="85.333333"/>
      <zoom_level scale="66261601.66266284" tile_width="42.666666" tile_height="42.666666"/>
      <zoom_level scale="33130800.83133142" tile_width="21.333333" tile_height="21.333333"/>
      <zoom_level scale="13252320.33253257" tile_width="8.5333333" tile_height="8.5333333"/>
      <zoom_level scale="6626160.166266284" tile_width="4.2666666" tile_height="4.2666666"/>
      <zoom_level scale="3313080.083133142" tile_width="2.1333333" tile_height="2.1333333"/>
      <zoom_level scale="1656540.041566571" tile_width="1.0666666" tile_height="1.0666666"/>
      <zoom_level scale="552180.0138555236" tile_width="0.3555555" tile_height="0.3555555"/>
      <zoom_level scale="331308.0083133142" tile_width="0.2133333" tile_height="0.2133333"/>
      <zoom_level scale="110436.0027711047" tile_width="0.0711111" tile_height="0.0711111"/>
      <zoom_level scale="55218.00138555237" tile_width="0.0355555" tile_height="0.0355555"/>
      <zoom_level scale="33130.80083133142" tile_width="0.0213333" tile_height="0.0213333"/>
      <zoom_level scale="11043.60027711047" tile_width="0.00711111" tile_height="0.00711111"/>
      <zoom_level scale="3313.080083133142" tile_width="0.00213333" tile_height="0.00213333"/>
      <zoom_level scale="1104.360027711047" tile_width="7.111111E-4" tile_height="7.111111E-4"/>
   </zoom_levels>
</map_tile_layer>',
'DEMO_MAP',
'');

例F-11 スケール・セットGoogleCRS84Quadのタイル定義

insert into user_sdo_cached_maps values(
'WMTS_E3',
'wmts annex e3 scale set GoogleCRS84Quad',
'',
'YES',
'YES',
'<map_tile_layer name="WMTS_E3" image_format="PNG" http_header_expires="168.0" concurrent_fetching_threads="3"> 
   <internal_map_source base_map="DEMO_MAP" data_source="MVDEMO"/>
   <coordinate_system srid="8307" minX="-180" maxX="180" minY="-90" maxY="90"/>
   <tile_image width="256" height="256"/>
   <tile_dpi value="90.7142857"/>
   <tile_meters_per_unit value="111319.49079327358"/>
   <zoom_levels levels="19" min_scale="2132.729583849784" max_scale="559082264.0287178">
      <zoom_level tile_width="360.0000" tile_height="360.0000" scale="5.590822640287178E8"/>
      <zoom_level tile_width="180.0000" tile_height="180.0000" scale="2.795411320143589E8"/>
      <zoom_level tile_width="90.0000" tile_height="90.00000" scale="1.3977056600717944E8"/>
      <zoom_level tile_width="45.0000" tile_height="45.00000" scale="6.988528300358972E7"/>
      <zoom_level tile_width="22.5000" tile_height="22.50000" scale="3.494264150179486E7"/>
      <zoom_level tile_width="11.2500" tile_height="11.25000" scale="1.747132075089743E7"/>
      <zoom_level tile_width="5.6250" tile_height="5.62500" scale="8735660.375448715"/>
      <zoom_level tile_width="2.8125" tile_height="2.81250" scale="4367830.1877243575"/>
      <zoom_level tile_width="1.40625" tile_height="1.40625" scale="2183915.0938621787"/>
      <zoom_level tile_width="0.703125" tile_height="0.703125" scale="1091957.5469310894"/>
      <zoom_level tile_width="0.3515625" tile_height="0.3515625" scale="545978.7734655447"/>
      <zoom_level tile_width="0.17578125" tile_height="0.17578125" scale="272989.38673277234"/>
      <zoom_level tile_width="0.087890625" tile_height="0.087890625" scale="136494.693366386"/>
      <zoom_level tile_width="0.0439453125" tile_height="0.0439453125" scale="68247.34668319"/>
      <zoom_level tile_width="0.02197265625" tile_height="0.02197265625" scale="34123.6733415"/>
      <zoom_level tile_width="0.010986328126" tile_height="0.010986328126" scale="17061.8366707"/>
      <zoom_level tile_width="0.0054931640633" tile_height="0.0054931640633" scale="8530.91833539"/>
      <zoom_level tile_width="0.00274658203168" tile_height="0.00274658203168" scale="4265.45916769"/>
      <zoom_level tile_width="0.001373291015841" tile_height="0.001373291015841" scale="2132.72958384"/>
   </zoom_levels>
</map_tile_layer>',
'DEMO_MAP',
'');

例F-12 スケール・セットGoogleMapsCompatibleのタイル定義

insert into user_sdo_cached_maps values(
'WMTS_E4',
'wmts annex e4 scale set',
'',
'YES',
'YES',
'<map_tile_layer name="WMTS_E4" image_format="PNG" http_header_expires="168.0" concurrent_fetching_threads="3">
   <internal_map_source base_map="DEMO_MAP" data_source="MVDEMO"/>
     <coordinate_system srid="3857" minX="-20037508" maxX="20037508" minY="-20037508" maxY="20037508"/>
       <tile_image width="256" height="256"/>
       <tile_dpi value="90.7142857"/>
       <tile_meters_per_unit value="1"/>
       <zoom_levels levels="19" min_scale="2132.729583849784" max_scale=" 559082264.0287178">
         <zoom_level tile_width="4.0075016692E7" tile_height="4.0075016692E7" scale="5.5908226403E8"/>
         <zoom_level tile_width="2.0037508346E7" tile_height="2.0037508346E7" scale="2.7954113201E8"/>
         <zoom_level tile_width="1.0018754173E7" tile_height="1.0018754173E7" scale="1.3977056601E8"/>
         <zoom_level tile_width="5009377.086486" tile_height="5009377.086486" scale="6.9885283004E7"/>
         <zoom_level tile_width="2504688.543243" tile_height="2504688.543243" scale="3.4942641502E7"/>
         <zoom_level tile_width="1252344.27162" tile_height="1252344.27162" scale="1.747132075089E7"/>
         <zoom_level tile_width="626172.135810" tile_height="626172.135810" scale="8735660.3754487"/>
         <zoom_level tile_width="313086.067905" tile_height="313086.067905" scale="4367830.1877243"/>
         <zoom_level tile_width="156543.033952" tile_height="156543.033952" scale="2183915.0938621"/>
         <zoom_level tile_width="78271.5169763" tile_height="78271.5169763" scale="1091957.5469311"/>
         <zoom_level tile_width="39135.7584882" tile_height="39135.7584882" scale="545978.77346554"/>
         <zoom_level tile_width="19567.8792441" tile_height="19567.8792441" scale="272989.38673277"/>
         <zoom_level tile_width="9783.93962204" tile_height="9783.93962204" scale="136494.69336638"/>
         <zoom_level tile_width="4891.96981102" tile_height="4891.96981102" scale="68247.346683193"/>
         <zoom_level tile_width="2445.98490551" tile_height="2445.98490551" scale="34123.673341596"/>
         <zoom_level tile_width="1222.99245275" tile_height="1222.99245275" scale="17061.836670798"/>
         <zoom_level tile_width="611.496226378" tile_height="611.496226378" scale="8530.9183353991"/>
         <zoom_level tile_width="305.748113189" tile_height="305.748113189" scale="4265.4591676995"/>
         <zoom_level tile_width="152.874056594" tile_height="152.874056594" scale="2132.7295838498"/>
       </zoom_levels>
</map_tile_layer>',
'DEMO_MAP',
'');

F.3.4 wmtsConfig.xmlポリシー・ファイルでのタイル層の公開

タイル層を公開するには、mapViewerConfig.xmlと同じ場所に保存されているwmtsConfig.xmlポリシー・ファイルの<public_datasources>要素を編集し、情報を追加できます。例F-13は、データソースMVDEMOの5つのタイル(TEST_EL、WMTS_E1、WMTS_E2、WMTS_E3およびWMTS_E4)およびデータソースTILSMENVのすべてのタイル層を公開するためのエントリを示しています。

例F-13 タイル層の公開

<public_datasources>
  <public_datasource name="MVDEMO">
    <tile_layers>
      <tile_layer name="TEST_TL"/>
      <tile_layer name="WMTS_E1"/>
      <tile_layer name="WMTS_E2"/>
      <tile_layer name="WMTS_E3"/>
      <tile_layer name="WMTS_E4"/>
    </tile_layers>
  </public_datasource>
  <public_datasource name="TILSMENV" include_all_tile_layers="TRUE">
</public_datasources>

F.3.5 MapViewer WMTSサービスの検証

MapViewer WMTSサービスが適切に機能していることを確認する手順は次のとおりです。

  1. MapViewerサーバーを再起動して、データソースからタイル層定義を取得し、WMTSポリシー・ファイルを適用します。

  2. タイル層が公開され、すべてのスケール・セットが期待どおりに表示されることを確認するには、次の形式でGetCapabilitiesリクエストを発行します。

    http://<url>:<port>/mapviewer/wmts?REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0