OGC标准介绍 19

I. WMTS-切片地图Web服务

· 概述

WMTS(OpenGIS® Web Map Tile Service)当前版本是1.0.0。WMTS标准定义了一些操作,这些操作允许用户访问切片地图。WMTS可能是OGC首个支持RESTful访问的服务标准。

· WMTS的原理和操作

WMTS的切片坐标系统和其组织方式可参考图 17:

image

23 WMTS的坐标系统和组织方式

如果知道一个请求的边界范围,可以根据以下的算法获取切片的序号:

// 计算切片序号范围

epsilon = 1e-6[1] //一个不影响坐标精度的小数值

tileMinCol = floor((bBoxMinX - tileMatrixMinX) / tileSpanX + epsilon)

tileMaxCol = floor((bBoxMaxX - tileMatrixMinX) / tileSpanX - epsilon)

tileMinRow = floor((tileMatrixMaxY - bBoxMaxY) / tileSpanY + epsilon)

tileMaxRow = floor((tileMatrixMaxY - bBoxMinY) / tileSpanY - epsilon)

// 避免超出范围

if (tileMinCol < 0) tileMinCol = 0

if (tileMaxCol >= matrixWidth) tileMaxCol = matrixWidth-1

if (tileMinRow < 0) tileMinRow = 0

if (tileMaxRow >= matrixHeight) tileMaxRow = matrixHeight-1

在一个WMTS服务中包括以下3个操作:

1. GetCapabilities(获取服务的元信息)

2. GetTile(获取切片)

3. GetFeatureInfo(可选,获取点选的要素信息)

可以看到这些操作和WMS的操作非常的异曲同工。

· GetCapabilities操作
1. KVP格式请求

GetCapabilities操作需要以下的参数:

参数

是否必须

默认值

SERVICE

WMTS

REQUEST=GetCapabilities

 

以下是一个WMTS使用KVP格式的GetCapabilities操作示例:

http://www.maps.bob/maps.cgi?

service=WMTS&

request=GetCapabilities

2. SOAP格式请求

以下是一个WMTS使用SOAP格式的GetCapabilities操作示例:


   
   xml version="1.0" encoding="UTF-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">

<soap:Body>

<GetCapabilities service="WMTS"

xmlns="http://www.opengis.net/ows/1.1">

<AcceptVersions>

<Version>1.0.0
    
    Version>


     
     AcceptVersions>

<AcceptFormats>

<OutputFormat>application/xml
      
      OutputFormat>


       
       AcceptFormats>

 
        GetCapabilities>  
         soap:Body>  
          soap:Envelope>

3. RESTful格式请求

GetCapabilities返回的就是服务的元信息(ServiceMetadata),因此RESTful格式请求就是一个指向元信息的资源地址,下面是一个WMTS使用RESTful格式的GetCapabilities操作示例:

http://www.maps.bob/1.0.0/WMTSCapabilities.xml

· GetTile操作
1. KVP格式请求

GetTile操作需要以下的参数:

参数

是否必须

默认值

SERVICE

WMTS

REQUEST=GetTile

 

VERSION

1.0.0

LAYER

 

STYLE

 

FORMAT

 

TILEMATRIXSET

 

TILEMATRIX

 

TILEROW

 

TILECOL

 

Sample dimensions参数

  

以下是一个WMTS使用KVP格式的GetTile操作示例:

http://www.maps.bob/maps.cgi?

service=WMTS&

request=GetTile&

version=1.0.0&

layer=etopo2&

style=default&

format=image/png&

TileMatrixSet=WholeWorld_CRS_84&

TileMatrix=10m&

TileRow=1&

TileCol=3

2. SOAP格式请求

以下是一个WMTS使用SOAP格式的GetTile操作示例:


   
   xml version="1.0" encoding="UTF-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">

<soap:Body>

<GetTile service="WMTS" version="1.0.0"

xmlns="http://www.opengis.net/wmts/1.0">

<Layer>etopo2
    
    Layer>

<Style>default
     
     Style>

<Format>image/png
      
      Format>

<TileMatrixSet> WholeWorld_CRS_84
       
       TileMatrixSet>

<TileMatrix>10m 
        TileMatrix> <TileRow>1 
         TileRow> <TileCol>3 
          TileCol>  
           GetTile>  
            soap:Body>  
             soap:Envelope>

3. RESTful格式请求

以下是一个WMTS使用RESTful格式的GetTile操作示例:

http://www.maps.bob/etopo2/default/WholeWorld_CRS_84/10m/1/3.png

· GetFeatureInfo操作
1. KVP格式请求

GetFeatureInfo操作需要以下的参数:

参数

是否必须

默认值

SERVICE

WMTS

REQUEST=GetFeatureInfo

 

VERSION

1.0.0

GetTile请求参数

  

I

 

J

 

INFOFORMAT

 

以下是一个WMTS使用KVP格式的GetFeatureInfo操作示例:

http://www.maps.bob/maps.cgi?

service=WMTS&

request=GetFeatureInfo&

version=1.0.0&

layer=coastlines&

style=default&

format=image/png&

TileMatrixSet=WholeWorld_CRS_84&TileMatrix=10m&TileRow=1&TileCol=3&

J=86&I=132&

InfoFormat=application/gml+xml; version=3.1

2. SOAP格式请求

以下是一个WMTS使用SOAP格式的GetFeatureInfo操作示例:


   
   xml version="1.0" encoding="UTF-8"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">

<soap:Body>

<GetFeatureInfo service="WMTS" version="1.0.0"

xmlns="http://www.opengis.net/wmts/1.0">

<GetTile service="WMTS" version="1.0.0"

xmlns="http://www.opengis.net/wmts/1.0">

<Layer>etopo2
    
    Layer>

<Style>default
     
     Style>

<Format>image/png
      
      Format>

<TileMatrixSet> WholeWorld_CRS_84
       
       TileMatrixSet>

<TileMatrix>10m 
        TileMatrix> <TileRow>1 
         TileRow> <TileCol>3 
          TileCol>  
           GetTile> <J>86 
            J> <I>132 
             I> <InfoFormat>application/gml+xml; version=3.1 
              InfoFormat>  
               GetFeatureInfo>  
                soap:Body>  
                 soap:Envelope>

3. RESTful格式请求

以下是一个WMTS使用RESTful格式的GetFeatureInfo操作示例:

http://www.maps.bob/etopo2/ default/WholeWorld_CRS_84/10m/1/3/86/132.xml


[1] 标准文档如是说,但我觉得这个地方应该取一负值。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值