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元数 ...
随机推荐
- js 保存并排序输入内容
转载请注明来源:https://www.cnblogs.com/hookjc/ /* Create By:jiangcheng_15 Create Date:2012-01-32 */ functio ...
- scons: 使用 SCons 轻松建造程序
转载请注明来源:https://www.cnblogs.com/hookjc/ 在软件项目开发过程中,make 工具通常被用来建造程序.make 工具通过一个被称为 Makefile 的配置文件可以自 ...
- vue单页面应用打包后相对路径、绝对路径相关问题
原文链接: vue单页面应用打包后相对路径.绝对路径相关问题展开 在项目开发过程中,在部署过程中,用到了反向代理,这就要求前端代码中不能使用绝对路径.但是我们知道,一般情况下,通过web ...
- UIImageView的frame设置
- (void)viewDidLoad { [super viewDidLoad]; /* // 设置frame的方式 // 方式一 UIImageView *imageView = [[UIImag ...
- SqlServer数据库表生成C# Model实体类SQL语句——补充
在sql语句最前边加上 use[数据库名] 原链接:https://www.cnblogs.com/jhli/p/11552105.html --[SQL骚操作]SqlServer数据库表生成C ...
- 利用redis+AOP简单处理MQ冥等问题
思路: 1.利用redis内部的串行执行特性,使用getandset()处理分布式问题; 2.注解提供入参选择,通过数据抽取后计算MD5值,实现业务性值的冥等: 代码区: 1.注解 1 /** 2 * ...
- Solution -「AGC 029E」「AT 4504」Wandering TKHS
\(\mathcal{Description}\) Link. 给一棵 \(n\) 个点的树,从某个点出发,遍历时必须走到已经走过的连通块所邻接的编号最小的结点.求从每个点出发,走到 \(1\ ...
- NTFS格式下的Alternate Data Streams
今天我写点NTFS的交换数据流以及其带来的安全问题(Alternate Data Stream/ADS) =============================================== ...
- Azure KeyVault(三)通过 Microsoft.Azure.KeyVault 类库在 .NET Core 上获取 Secrets
一,引言 上一篇文章,我们介绍了 Azure Key Vault 在实际项目中的用途,Azure Key Vault 作为密钥管理的服务,我们可以很轻松的利用它创建和控制用于加密的密钥,和管理证书和机 ...
- python.36的特性新定义初学者必看课程
一.Python3.6新特性 1.新的格局化字符串办法 <p "="">新的格局化字符串办法,即在一般字符串前增加 f 或 F 前缀,其效果相似于str.fo ...