ArcMap和ArcGIS Pro加载百度地图

摘要:
最近,当使用ArcGISPro加载Sky Map的WMTS服务时,我们发现偏差有点严重。我们深入研究和分析了ArcGISPro加载WMTS服务的原理和机制。因此,我们改变了ArcBruTileBaidu插件的想法,将百度地图改编为标准WMTS服务,这可以有效解决上述缺陷。

  前面发布了两篇我用ArcBruTile开发用于ArcMap加载百度地图的插件ArcBruTileBaidu,放在网上后评论和反响还不错,还有两位大学同学通过百度搜索居然搜到我本人!文章和技术介绍也被网络上复制粘贴了很多次,开发了那么多没人用的数字城市平台软件和GIS系统,这一个工具才感觉自己还有点用。

      毕竟只是茶余饭后的兴趣爱好,对该插件升级和维护的也不是很及时,也导致很多需求没跟上,对不起各位用户。

ArcBruTileBaidu插件有如下几个大的缺陷:

1.    需要下载安装包进行安装,极大概率是因为环境不支持安装会不成功!

2.    由于是ArcGIS Add-In开发,对ArcMap的版本要求特别高,每个版本都要重新编译一套插件,根本就不可能每个版本都编译到,我当时还是用的一个虚拟机,安装了两个版本,ArcMap 10.0和10.1,因此也就基本上只支持这两种,而且还经常出现不兼容的问题。

3.    B/S系统最怕ActiveX,C/S系统最怕COM,由于ArcGISAdd-In开发采用的COM组件,动不动就崩溃,你有时候都很难调试问题。

4.    由于是本地安装,参数配置都是下载在本地,因此百度地图更新或参数变化,就会导致程序崩溃或地图不出来。

5.    由于当时就是玩玩,程序写的也不健壮,经常各种问题。

 

       这个东西需求很大,一直鞭策着我进行升级或重构,但本人太懒,一直拖着。最近在使用ArcGISPro加载天地图的WMTS服务时,发现偏移的有点厉害,就深入研究和分析了下ArcGIS Pro加载WMTS服务原理和机制,因此将ArcBruTileBaidu插件的思路换成将百度地图适配为标准的WMTS服务,这样可以有效地解决上述缺陷。

1.    用户再也不用安装任何插件,直接使用在线服务即可。

2.    妈妈再也不用担心不同版本的ArcMap了,而且还能支持最新的ArcGIS Pro了。

3.    ArcMap和ArcGISPro原生就支持加载WMTS服务,性能好,不会崩溃了。

4.    采用在线模式,随时进行升级和参数更改。

5.   通过OGC的WMTS标准服务,其它B/S系统中也可以直接调用(目前该功能尚未开放)

废话少说,直接开始讲使用教程吧

 1.    打开ArcGIS Pro 添加WMTS服务

ArcMap和ArcGIS Pro加载百度地图第1张 添加WMTS服务

2.    输入WMTS服务的能力文档地址:

http://demo.cxgis.com/wmts/baidu/vec?request=getcapabilities

ArcMap和ArcGIS Pro加载百度地图第2张
输入WMTS服务地址

3.添加图层.打开添加的WMTS服务,获取其中的图层,可以看到有Baidu_Vec_Map,这个是电子地图的,右键图层添加到当前地图中,左侧的TOC就会显示该图层

ArcMap和ArcGIS Pro加载百度地图第3张
Baidu_Vec_Map图层

4.验证坐标. 百度地图3级以下是没有瓦片的,因此显示全图时,最开始是没有地图的,可以放大几级就会出现地图了。该服务是严格根据百度地图的坐标进行换算,图上每个点坐标都很精确,我们输入百度坐标原点【00】,可以看到定位很正确。

ArcMap和ArcGIS Pro加载百度地图第4张
[0,0]百度地图坐标原点定位

5.再试下百度坐标定位验证. 我爱**,我们来看下***的定位是否正确呢。例如的经纬度大约为116.404,39.915,经过转换即可得到平面坐标:

varprojection =new BMap.MercatorProjection();var point = projection.lngLatToPoint(new BMap.Point(116.404, 39.915));;

12958175, 4825923.77,我们输入该坐标定位过去,Perfect!

ArcMap和ArcGIS Pro加载百度地图第5张
BJ

也就是说利用这个坐标系在上面进行数据采集和标绘,至少更百度地图肯定是可以百分百精确匹配的

6. 我们和天地图及ESRI的地图进行一个对比看看偏差如何。

ArcMap和ArcGIS Pro加载百度地图第6张
左边是百度地图,有便是Esri的Topographic地图

 

ArcMap和ArcGIS Pro加载百度地图第7张
左边是天地图,右边是百度地图

 

ArcMap和ArcGIS Pro加载百度地图第8张
放大后会发现坐标还是偏差的

由于百度地图是有自己的偏移算法的,因此任何投影都是无法一次性解决所有问题的,这也是商业使然,中国人都不喜欢按标准来搞,没办法!

但是本方法能够解决在百度地图坐标系统下能够非常精确的统一.

亲测在ArcMap 10.6中也可以,截图忘记截了!

 

 

免责声明:文章转载自《ArcMap和ArcGIS Pro加载百度地图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Winform遍历窗口的所有控件(几种方式实现)input标签与label标签的“合作关系”下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

百度地图滚轮缩放时产生位置偏移 问题

最近在调用百度地图的过程中,发生了在地图上滚轮缩放,结果产生了位置偏移的情况,同样在移动端,双指缩放也有同样的问题。 这个问题产生的原因主要是因为百度地图加载的位置因为定位等原因,与整个html 页面产生了不同步滚动的问题。 百度地图的缩放是基于body层的,如果body层有滚动条,并且不在最顶端,在当前位置插入了百度地图,也就是出现该问题时的状态,这个时...

百度竞价门再跟踪:违规医疗广告数量仍大幅增加

网易科技讯 2月18日消息,网易科技日前收到一份署名为反流氓软件联盟的《百度医疗医药广告统计报告》(以下简称报告),据该调研报告中显示,在百度医疗医药竞价排名广告违规被媒体曝光后,这类广告数量随后有所减少,不过在风波平息后,此类广告数量又大幅增加,并且现在仍有大量违规医疗广告。 医疗类广告数量高达遭曝光时两倍 百度在2008年11月因受到媒体曝光影响...

蜘蛛池刷百度指数和第三方贴

作者:GoGo闯链接:https://www.zhihu.com/question/31172848/answer/126237914来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 介绍蜘蛛池和刷百度指数的科普贴。 利用大中型站点搜索结果页做外推,估计在大中型网站工作的同学都碰到过,把业务词(大多是业务+联系方式,如“办假证...

ArcMap 2 数据矢量化

若有不妥,还请见谅。留下留言,与君共勉。 前言:GIS专业的同学或与GIS接触的专业或其它,应该了解到数据的“矢量化”的不(酸)易(爽)。以目前博主的水平,本文暂时只能提供两种数据“矢量化”的方式。大家有好的方法或以后我接触的更多,会再次更新本博文。该博客的系列文章都会时常更新,离不开大家的建议。 本篇博文请与下一篇博文ArcMap 3 矢量数据下载(下载...

墨者学院靶场之PHP代码分析溯源(第1题)

申请靶场环境后 点开题目 一段奇怪的PHP代码 因为我自己电脑重装了win10系统,php+apache+mysql的环境本地主机觉得没必要弄了,于是我们用在线的PHP编码(百度一下到处都是) 复制进去以";"来排个格式 运行下,报错。 看看源码,"$_"     "$__"     "$___" 这三个是变量名,我们用echo输出下内容 连在一起...

百度网盘等相关百度产品账号不存在问题

开篇先讲一下,其实是很简单的问题,由于百度网盘暂时未推出客服,就变成了比较考验我们探索能力及解决小问题能力的事了。 百度网盘介绍 百度网盘(原百度云)是百度推出的一项云存储服务,已覆盖主流PC和手机操作系统,包含Web版、Windows版、Mac版、Android版、iPhone版和Windows Phone版。 用户将可以轻松将自己的文件上传到网盘上,...