ArcGIS读取天地图V1.1
更新时间:2023-08-06 11:00:01 阅读量: 实用文档 文档下载
解决天地图叠加数据偏移情况
ArcGIS读取天地图
1.天地图概况
天地图2.0(http://www.77cn.com.cn)于2013年3月份上线,基本情况如下:
1)基于OGC的WMTS 1.0.0版本;
2)提供矢量地图、影像地图和地形图;
3)提供两种坐标系:国家2000大地坐标系和Web Mercator投影坐标系;
4)地图和标注数据分开,矢量地图和影像地图提供中英文标注,地形图仅
提供中文标注。
所以,天地图提供了16个服务地址,如下表所示:
表格1天地图2.0服务地址
解决天地图叠加数据偏移情况
2.ArcGIS WMTS接口访问天地图
ArcGIS产品,包括桌面产品、Web APIs、Native SDKs都提供了对WMTS 的支持。如此,可以通过这些接口来访问天地图的WMTS服务。但是实际情况要复杂一些,经过测试发现,使用ArcGIS的WMTS接口访问天地图,会出现偏差,如下图所示。
经过研究发现,产生偏差的根本原因在于:ArcGIS WMTS接口中使用的DPI 与天地图使用的DPI不一致。
解决天地图叠加数据偏移情况
OGC WMTS标准中规定,通过getcapatilities请求可以获得WMTS的元数据。上图是天地图2.0WMTS元数据的部分截图(XML格式)。元数据中包含各个级别的比例尺数据(如图中红框内容)。在访问WMTS时,需要通过这些元数据计算出分辨率,公式如下所示。
Scale=1:(Resolution?
DPI 0.0254)
OGC WMTS规范中DPI采用90.71(即采用0.028mm作为一个像素的物理宽度),而天地图使用的DPI采用国家标准规定的96(见《电子地图规范》)。由于ArcGIS WMTS接口实现均遵循OGC WMTS标准,使用90.71作为DPI来计算分辨率,导致ArcGIS通过WMTS接口访问天地图时,图片物理尺寸变大,使得地图看上去向右下方偏移。
3.扩展ArcGIS接口访问天地图(以ArcGIS Runtime SDK for
Android为例)
在第2小结,分析了用ArcGIS WMTS接口访问天地图产生偏移的原因,那么就可以有针对性的对ArcGIS接口进行扩展,来实现对天地图的访问。
ArcGIS接口可以扩展。以ArcGIS Runtime SDK for Android为例,提供了TiledServiceLayer类。这是访问切片服务的基础类,通过扩展这个类,就可以访问天地图的WMTS服务了。扩展之前,需要了解一下天地图服务的一些参数,包括:
1)比例尺:
2)分辨率:
解决天地图叠加数据偏移情况
3)起始点:
4)地图范围:
有了以上信息,通过扩展TiledServiceLayer,就可以访问天地图了,核心代码如下所示:
TianDiTuLayer.java
解决天地图叠加数据偏移情况
public TianDiTuLayer(int layerType) {
super(true);
http://www.77cn.com.cnyerInfo = LayerInfoFactory.getLayerInfo(layerType);
this.init();
}
privatevoid init() {
try {
getServiceExecutor().submit(new Runnable() {
publicvoid run() {
TianDiTuLayer.this.initLayer();
}
});
} catch (RejectedExecutionException rejectedexecutionexception) { Log.e("ArcGIS", "initialization of the layer failed.",
rejectedexecutionexception);
}
}
protectedbyte[] getTile(int level, int col, int row) throws Exception { if (level >layerInfo.getMaxZoomLevel()
|| level <layerInfo.getMinZoomLevel())
returnnewbyte[0];
String url = layerInfo.getUrl()
+ "?service=wmts&request=gettile&version=1.0.0&layer="
+ layerInfo.getLayerName() + "&format=tiles&tilematrixset="
+ layerInfo.getTileMatrixSet() + "&tilecol=" + col
+ "&tilerow=" + row + "&tilematrix=" + (level+1);
Map<String, String> map = null;
return com.esri.core.internal.io.handler.a.a(url, map);
}
protectedvoid initLayer() {
if (getID() == 0L) {
nativeHandle = create();
changeStatus(com.esri.android.map.event.OnStatusChangedListener.STATUS .fromInt(-1000));
} else {
this.setDefaultSpatialReference(SpatialReference.create(layerInfo
.getSrid()));
this.setFullExtent(new Envelope(layerInfo.getxMin(), layerInfo
.getyMin(), layerInfo.getxMax(), layerInfo.getyMax()));
this.setTileInfo(new TileInfo(layerInfo.getOrigin(), layerInfo
解决天地图叠加数据偏移情况
以下代码说明如何使用扩展后的TianDiTuLayer来显示天地图服务。
使用扩展后的TianDiTuLayer加载天地图,与业务数据叠加效果图如下所示:
4.总结
ArcGIS接口可以灵活扩展。以上是以ArcGIS Runtime SDK for Android为例说明如何扩展来加载天地图。其它接口,比如Web APIs、Native SDKs、Portal、
解决天地图叠加数据偏移情况
桌面都可以通过类似的方式实现扩展。
正在阅读:
ArcGIS读取天地图V1.108-06
歌曲《剪羊毛》教案05-31
070304003双调谐高频小信号放大器10-12
电缆制作通用工艺规范05-04
大学网球体育理论考试02-26
社区卫生服务中心发展趋势分析12-18
模电16(运算放大器)05-14
马哲基本知识点310-24
家乡的大海作文450字07-09
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 读取
- 地图
- ArcGIS
- 1.1
- 周国平语录周国平
- 强大的苏联是怎么会顷刻解体的
- 晋城拓展基地有那些?
- 运用“破窗理论”加强班级管理
- BG11培养基配制方法
- 鲁教版2020九年级数学上册第一章反比例函数单元综合能力达标测试题B(附答案详解)
- 小升初语文如何写作叙事作文
- 年度民主评议党员个人总结
- 小学语文教学调研报告
- 新生儿聋病基因筛查——悄然的革命
- 个体工商户年检收费标准
- 新视野大学英语第一册Unit4讲稿
- 定向凝固NiAl-28Cr-5.85Mo-0.15Hf合金的高温蠕变行为研究
- 海宁市政府采购中心关于海宁市人民医院等单位虚拟化设备
- 近红外光谱法在药物分析中的应用
- 苏教版语文12册六年级下册课件14《学会合作》课件1
- 预防接种疑似异常反应登记报告制度
- 14《故宫博物院》
- 云南省濒危动物现状及保护措施
- 学校治安综合治理工作制度