文档章节

ArcGIS_使用天地图WMTS服务

HonglingHe
 HonglingHe
发布于 2016/01/15 16:19
字数 993
阅读 606
收藏 0

由于公司项目需要使用ArcGIS来加载天地图服务,所以收集和整理了一些ArcGIS方面的资料。自从高二后就几乎没接触过地理知识了,对GIS的了解也是近期学习才了解了一些基本概念,所以理解有偏差的地方希望大家不吝指教。

  • WMTS服务介绍

    WMTS (Web Map Tile Service) 是OGC 提出的缓存技术标准,即在服务器端缓存被切割成一定大小瓦片的地图,对客户端只提供这些预先定义好的单个瓦片的服务,将更多的数据处理操作如图层叠加等放在客户端,从而缓解 GIS 服务器端数据处理的压力,改善用户体验。

    WMTS 使用瓦片矩阵集(Tile matrix set)来表示切割后的地图,如图1所示。瓦片就是包含地理数据的矩形影像,一幅地图按一定的瓦片大小被切割成多个瓦片,形成瓦片矩阵,一个或多个瓦片矩阵即组成瓦片矩阵集。不同的瓦片矩阵具有不同的分辨率,每个瓦片矩阵由瓦片矩阵标识符(一般为瓦片矩阵的序号,分辨率最低的一层为第0层,依次向上排)进行标识。

                                              图 1 瓦片矩阵集

    TiledWMTSLayer是用于访问WMTS服务的分块缓存图层,位于命名空间com.supermap.web.mapping下。TiledWMTSLayer具有通用性,支持任何符合ogc标准的WMTS服务。TiledWMTSLayer可通过HTTP KVP(Key-Value Pair)和 REST两种方式访问WMTS服务。

  • 天地图WMTS功能参数

要想成功访问WMTS服务,需要为TiledWMTSLayer设置的参数有:WMTS服务地址(url)、要访问的图层名称(layerName)、访问方式(requestEncoding)和当前图层(layerName)的具体信息参数。

如某一切片地址为:

http://t0.tianditu.com/vec_c/wmts?service=wmts&request=gettile&version=1.0.0&layer=vec&STYLE=default&tilematrixset=c&tilematrix=3&tilerow=2&tilecol=4&format=tiles

其中http://t0.tianditu.com/vec_c/wmts?  为图层服务器地址

其他参数为:

GetCapabilities、Gettile

参数 类型及范围 说明
baseURL

http://t0.tianditu.com/服务类型/wmts

服务类型:

vec_w、cva_w、eva_w、img_w、cia_w、ter_w、cta_w、

vec_c、cva_c、eva_c、img_c、cia_c、ter_c、cta_c、

服务器地址
service

服务类型
request
gettile、GetCapabilities 请求类型
version

WMTS服务的版本,默认值为1.0.0
layer

w:Mercator

c: cgcs2000

图层名称
style
图层的风格(具体含义不知)
tilematrixset

矩阵集标识
tilematrix
int 瓦片层号
tilerow
int 瓦片行号
tilecol
int 瓦片列号
format
jpg、png、titles 请求瓦片的格式


  • ArcGIS使用天地图WMTS服务

ArcGIS来加载天地图切片主要方式为自定义CustomLayer继承自AGSTiledServiceLayer

  • 重写父类的三个readonly属性

@interface TianMapLayer : AGSTiledServiceLayer
{
    AGSTileInfo *_tileInfo; // 瓦片信息
    AGSEnvelope *_fullEnvelope; // 显示范围
    AGSSpatialReference *_spatialReference; // 参考坐标系
}
@end
@implementation TianMapLayer
- (AGSTileInfo *)tileInfo {
    return _tileInfo;
}

- (AGSEnvelope *)fullEnvelope {
    return _fullEnvelope;
}

- (AGSSpatialReference *)spatialReference {
    return _fullEnvelope.spatialReference;
}
@end


  • 初始化时设置 Layer schema信息

- (instancetype)initWithType:(TianMapType)layerType localServiceURL:(NSString *)url error:(NSError *__autoreleasing *)error {
    if (self = [super init]) {
        TianMapInfo *layerInfo = [TianMapInfo infoWithLayerType:layerType];
        self.layerInfo = layerInfo;
        
        if (url) {
            layerInfo.baseUrl = url;
        }
        _fullEnvelope = layerInfo.fullEnvelope;
        _tileInfo = layerInfo.tileInfo;
        [_tileInfo computeTileBounds:self.fullEnvelope];
        [super layerDidLoad];
    }
    return self;
}


  • 重写请求瓦片数据和取消请求的两个方法

-(void)requestTileForKey:(AGSTileKey*)key; // 需要加载某一瓦片时调用
-(void)cancelRequestForKey:(AGSTileKey*)key; // 取消加载某一瓦片时调用


1. 初始化Layer schema信息设置可参考官方Capabilities文档内容:

http://t0.tianditu.com/vec_w/wmts/?SERVICE=WMTS&REQUEST=GetCapabilities

2. 

-(void)requestTileForKey:(AGSTileKey*)key;

方法中,根据请求瓦片的位置,构建瓦片URL信息,创建操作并加入全局队列

瓦片信息下载完成后,调用

[super setTileData:op.imageData forKey:op.tileKey];

将数据显示到对应Key的位置上


Demo地址:

https://github.com/HonglingHe/ArcGIS_TianDiTuWMTS

参考链接:

1> http://blog.csdn.net/u012239760/article/details/50435255

2> http://blog.csdn.net/chaiqi/article/details/9302373


© 著作权归作者所有

上一篇: Git常用配置技巧
下一篇: Git常用配置技巧
HonglingHe
粉丝 0
博文 2
码字总数 2675
作品 0
合肥
私信 提问
Esri美国用户大会Q&A 之 ArcGIS Server未来发展

2012年Esri全球用户大会正在举行,登录其官方网站我们可以找到对于今年用户大会的问答(Q&A),其中包括了云、三维、ArcGIS Server、ArcGIS Desktop等众多内容。原文地址:http://events.esr...

长平狐
2012/11/28
370
0
nginx在代理转发地图瓦片数据中的应用

最近有这样一个需求,需要将arcgis server发布的地图瓦片放在移动硬盘中,系统演示的时候,直接调用本地的地图瓦片,而非远程的,主要是为了系统演示的时候加快地图访问速度。 而且需要在任意...

zhang90030
2018/08/10
0
0
回答你对ArcGIS Online的疑问?之一

第一手信息,来自ArcGIS_云计算新浪微博http://weibo.com/arcgiscloud 你是不是对ArcGIS Online有很多疑问?它到底是什么?能给我们带来什么?满足了什么需求?我在这里给你一一解答。 1、A...

长平狐
2012/11/28
506
0
回答你对ArcGIS Online的疑问?之二

第一手信息,来自ArcGIS_云计算新浪微博http://weibo.com/arcgiscloud 11、ArcGIS Online支持Feature编辑吗? 是的,ArcGIS Online支持Feature编辑,用户可以轻松的构创建一个Feature Service...

长平狐
2012/11/28
215
0
vue地图可视化 ArcGIS篇(3)

ArcGIS for javascript开发心得 本次实例中采用ArcGIS for javascript3.24版本,由于版本3与4在API等存在较大区别,就不一一列举,详细区别看[官方解释] arcgis for js4.7版本能够自动创建l...

YJ在掘金
2018/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java的战争

本文来自微信公众号: 金捷幡(ID:jin-jiefan) ,作者:金捷幡,封面:拉里·埃里森(东方IC) 2019年5月,彻底撕破脸的特朗普掀起对华为的战争,谷歌被迫吊销了华为的Android授权。开源软...

Java领航员
35分钟前
1
0
超详细的LM3414MRX/NOPB规格参数介绍就在这里

超详细的LM3414MRX/NOPB规格参数介绍就在这里 描述 LM3414和LM3414MRX/NOPB是具有1-A 60 W(1)共阳极功能的恒流降压LED驱动器。它们适用于驱动单串3-W HBLED,效率高达96%。它们可接受4.5...

不能吃肉的仙女
42分钟前
1
0
Eclipse国内镜像源配置方法

Table of Contents 我们在国内从官网下载Eclipse以及插件非常慢,那么,有没有方法变快呢? 有,那就是使用国内的公开镜像源替换官方源。 1 下载Eclipse 首先,我们看一个链接地址: http:/...

求神
今天
5
0
java 请求服务

一.第一种基于java web http 请求服务,必须用tomcat 容器启动才能对外提供服务 在maven 工程中pox 文件导入jar <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>h......

zaolonglei
今天
5
0
HDFS工作机制——自开发分布式数据采集系统

需求描述: 在业务系统的服务器上,业务程序会不断生成业务日志(比如网站的页面访问日志) 业务日志是用log4j生成的,会不断地切出日志文件,需要定期(比如每小时)从业务服务器上的日志目...

须臾之余
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部