WMTS服务解析
WMTS服务解析
1、基本思路
拼接地址,请求xml文件
↓
处理获取的xml文件,返回参数
↓
获取xml解析得到的参数,组织结构
2、对应函数
requestWMTS (olUrl)
↓
handleWMTS(xml,fullName)
↓
getWMTSparam(curRecord)
3、操作步骤
①点击【添加服务】
②输入名称、链接、类型
③点击【确定】(解析保存)
4、解析须知
(1)拼接地址结构
添加服务地址:http://你的Geoserver网址/gwc/service/wmts/rest/csdn:CSDNDOM/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}?format=image/png
结构:
Geoserver地址/gwc/service/wmts/rest/切片名/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}?format=image/png
拼接地址结构:
geoserverUrl + "/gwc/service/wmts?service=WMTS&version=1.0.0&request=GetCapabilities"
geoserverUrl即为geoserver服务地址;
service = WMTS即为wmts服务;
version=1.0.0即为geoserver版本,这个可以向下兼容;
request=GetCapability即为获取wmts全部信息;
(2)xml节点中冒号:问题
基本解决思路为:
将xml转为字符串,将:替换为规定符号(我用的C,后来直接将ows:替换为ows),再将string转为xml便于解析;
还有一种思路为:将xml转为字符串,使用正则表达式遍历,得到结果;
法一:缺点为若正巧出现关于C的特殊情况(后来直接将ows:替换为ows),需注意,且不建议使用特殊符号,建议使用大写字母。
法二:若熟练使用正则表达式还是建议使用正则表达式,更适合处理一些突发情况,但xml文件中内容很多,可能耗费时间。
(3)关于wmts参数

存储参数结构

加载需要参数结构
Wmts的xml文件链接:http://你的geoserver/gwc/service/wmts?service=WMTS&version=1.0.0&request=GetCapabilities
参数注:
Format一般为image/png,但也可能为image/jpeg等,但不影响加载;
Projection的units即为单位一般为度,这个要让他们发布服务时注意;
tilegrid中的extent和origin均用世界的,由于geoserver中openlayers的例子中是用的世界范围,我也用的世界范围,若有天需要范围可在xml文件中中拿到,然后计算中心即可;
tilegrid中的resolution与matrixIds是对应的,且xml文件中只能拿到matrixIds,拿不到resolution,我是将代码中写入了22级resolution,来与matrixIds对应,一般没问题,但他的级别是有30级的,若果真用到了就再把剩下的8级给加上。
5、链接获取
【添加服务】中链接的来源:
①geoserver发布wmts服务
②使用拼接地址拿到xml文件,用wmts名称查找到Layer位置,然后去拿图中地址
如图:

注意是第一个链接地址。
6、代码细节
其实在代码中完全可以看懂,略显繁琐,可以不看。
①hadleWMTS的maxtrixSet参数即为切片方案的名称,解析过程为拿到中的,之后去找下的对应的内容(即为切片方案名)进行比对,再在上层,拿到对应的级别的chidlren放在数组中。
②在现有的geoserver版本下,默认的matrixIds级别模板为crs:1,利用这点,利用split方法拿到坐标系code;百度后发现,大概在geoserver2.0后版本默认的级别模板有所不同。
③加载wmts需要的参数,最终组织在名为source的json对象中;像之前的【添加服务】功能是需要获取中心Center和范围Extent的,至于这点代码我也写了,若后期需要请自行取用(需要删改),其中为了不进行弹窗配置,在数据库的remark字段中,将其全部作为raster处理。
④获取的wmts的xml文件中有的对应两个切片方案,这个应该是该图层未进行切片处理,也可能是geoserver中设置对应了两个切片方案(应该不是),这点有待考证。
⑤还有一个点是,我只将解析的source,return了出来,至于formvalue我不知数据库中将如何组织,便未将名称链接等组织在内,其余暂时已无需要注意的点。
注:WMS服务解析类似,掌握WMTS服务解析,极易掌握WMS解析。

扫码关注公众号
WMTS服务解析的更多相关文章
- 使用C++/libCurl/Jsoncpp读取arcgis wmts 服务(restful模式)
前言: 最近工作需要将arcgis的wmts服务接入我们的3DGis系统平台,要求用户只输入一个rest模式的wmts服务地址,系统即可自动获取并解析其元数据信息,生成wmts图层,并渲染显示.经过多 ...
- 超图不支持JPEG格式的WMTS服务
就目前面而言,超图不支持JPEG格式的WMTS服务,只支持PNG格式的. <本篇完>
- 如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务
如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务? 我这里的测试环境是ArcGISServer10.1和TerraExplorer Pro7.0,主要过程截图如下,
- (二十)ArcGIS JS 加载WMTS服务(超图示例)
前言 在前一篇中说到我们可以通过加载WMS服务解决用ArcGIS API加载超图发布的服务,但是WMS服务在加载效率上是低于切片服务的,加上超图的IServer,无力吐槽,所以,在加载速度的要求下,切 ...
- 【Oracle学习笔记-3】关于Oracle 10g中各种服务解析
[原创]关于oracle 10g中各种服务解析 (2014/10/16 8:39:40) 时间:2014-10-16 8-58-30 作者:ssslinppp 1. 当首次安装oracle 1 ...
- 使用GeoServer+QGIS发布WMTS服务 | Publishing WMTS Service Using GeoServer+QGIS
Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...
- (转载)arcgis for js - 解决加载天地图和WMTS服务,WMTS服务不显示的问题,以及wmts服务密钥。
1 arcgis加载天地图和wmts服务 arcgis for js加载天地图的例子网上有很多,这里先不写了,后期有空再贴代码,这里主要分析下WMTS服务为什么不显示,怎么解决. 条件:这里的WMTS ...
- 设置代理调用WMTS服务
一.数据准备 1.链接:http://pan.baidu.com/s/1sjzCytR 密码:uugc,下载DotNet版本 2. 发布切片服务,打开ogc服务可产看到相应的符合ogc标准的服务,如下 ...
- 使用C# + httpWebRequest 解析WMTS服务元数据
解析http://219.142.81.86/igserver/ogc/kvp/TAS10R52000J49/WMTSServer服务的元数据 // 测试httpWebRequest读取 wmts元数 ...
随机推荐
- 使用ajax上传文件
1. XMLHttpRequest(原生ajax) [](javascript:void(0) <input class="file" type="file&quo ...
- 解决sublime代码不提示的问题
如果想让sublime在你输入标签的过程中给你提示,需要按要求开启以下功能. 1.开启代码自动提示功能
- ios 类别和扩展-赵小波
类别 @interface ClassName ( CategoryName ) // method declarations @end Category在iOS开发中使用非常频繁.尤其是在为系统类进 ...
- iOS中处理时间的类
登录|注册 sakulafly的专栏 目录视图 摘要视图 订阅 Markdown博文大赛清新开启 天天爱答题 一大波C币袭来 中国云计算大会演讲议题公布 大 ...
- 部署YUM仓库及NFS共享服务
部署YUM仓库及NFS共享服务 目录 部署YUM仓库及NFS共享服务 一.YUM仓库服务 1. YUM概述 2. 部署YUM软件仓库 (1)准备安装源 ①YUM仓库的种类 ②RPM软件包的来源 ③构建 ...
- 通过 call/cc 给 Ice 实现 Coroutine
前两天给 Ice 加了 call/cc, 为此还重构了一波, 实现 call/cc 还是因为看了轮子哥的大专系列( 里边说提供 continuation 语言实现 Coroutine 起来很轻松, 后 ...
- shell脚本之判断当前内核主版本是否为3,且次版本是否大于10
[root@localhost ~]# cat uname.sh #!/bin/bash main=`uname -r | awk -F . '{print $1}'` minor=`uname -r ...
- Spring Boot 自动配置(基本配置)
在关于Spring Boot的第一篇中就提到了其几大特性,其中关于Java配置简化属性注入在上一篇SpringBoot外部配置 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中已经介绍. ...
- 关于Linux操作系统的命令行文件拷贝
关于Linux操作系统的命令行文件拷贝 起因:服务器的加密狗秘钥过期导致无法使用服务,需要将服务器里面的秘钥文件发送给授权人员.本以为十分容易,打开服务器,图形界面点击发送即可.没想到服务器的界面是命 ...
- MShadow中的表达式模板
表达式模板是Eigen.GSL和boost.uBLAS等高性能C++矩阵库的核心技术.本文基于MXNet给出的教程文档来阐述MXNet所依赖的高性能矩阵库MShadow背后的原理. 编写高效的机器学习 ...