ArcGIS读取天地图V1.1_第1页
ArcGIS读取天地图V1.1_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、arcgis读取天地图v1.1 解决天地图叠加数据偏移状况 arcgis读取天地图 1.天地图概况 天地图2.0()于2021年3月份上线,基本状况如下: 1)基于ogc的wmts 1.0.0版本; 2)供应矢量地图、影像地图和地形图; 3)供应两种坐标系:国家2000大地坐标系和web mercator投影坐标系; 4)地图和标注数据分开,矢量地图和影像地图供应中英文标注,地形图仅 供应中文标注。 所以,天地图供应了16个服务地址,如下表所示: 表格1天地图2.0服务地址 解决天地图叠加数据偏移状况 2.arcgis wmts接口访问天地图 arcgis产品,包括桌面产品、web apis、

2、native sdks都供应了对wmts 的支持。如此,可以通过这些接口来访问天地图的wmts服务。但是实际状况要简单一些,经过测试发觉,使用arcgis的wmts接口访问天地图,会消失偏差,如下图所示。 经过讨论发觉,产生偏差的根本缘由在于:arcgis wmts接口中使用的dpi 与天地图使用的dpi不全都。 解决天地图叠加数据偏移状况 ogc wmts标准中规定,通过getcapatilities恳求可以获得wmts的元数据。上图是天地图2.0wmts元数据的部分截图(xml格式)。元数据中包含各个级别的比例尺数据(如图中红框内容)。在访问wmts时,需要通过这些元数据计算出辨别率,公式

3、如下所示。 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接口访问天地图产生偏移的缘由

4、,那么就可以有针对性的对arcgis接口进行扩展,来实现对天地图的访问。 arcgis接口可以扩展。以arcgis runtime sdk for android为例,供应了tiledservicelayer类。这是访问切片服务的基础类,通过扩展这个类,就可以访问天地图的wmts服务了。扩展之前,需要了解一下天地图服务的一些参数,包括: 1)比例尺: 2)辨别率: 解决天地图叠加数据偏移状况 3)起始点: 4)地图范围: 有了以上信息,通过扩展tiledservicelayer,就可以访问天地图了,核心代码如下所示: tianditulayer.java 解决天地图叠加数据偏移状况 publi

5、c tianditulayer(int layertype) super(true); yerinfo = layerinfofactory.getlayerinfo(layertype); this.init(); privatevoid init() try getserviceexecutor().submit(new runnable() publicvoid run() tianditulayer.this.initlayer(); ); catch (rejectedexecutionexception rejectedexecutionexception) log.e(arcgi

6、s, initialization of the layer failed., rejectedexecutionexception); protectedbyte gettile(int level, int col, int row) throws exception if (level layerinfo.getmaxzoomlevel() | level layerinfo.getminzoomlevel() returnnewbyte0; string url = layerinfo.geturl() + ?service=wmtsrequest=gettileversion=1.0

7、.0layer= + layerinfo.getlayername() + format=tilestilematrixset= + layerinfo.gettilematrixset() + tilecol= + col + tilerow= + row + tilematrix= + (level+1); mapstring, string map = null; return ernal.io.handler.a.a(url, map); protectedvoid initlayer() if (getid() = 0l) nativehandle

8、= 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.总结 arcgi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论