前面发布了两篇我用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服务

添加WMTS服务

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

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


输入WMTS服务地址

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


Baidu_Vec_Map图层

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


[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!


BJ

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

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


左边是百度地图,有便是Esri的Topographic地图

左边是天地图,右边是百度地图

放大后会发现坐标还是偏差的

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

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

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

ArcMap和ArcGIS Pro加载百度地图的更多相关文章

  1. 更新!ArcMap和ArcGIS Pro加载百度影像地图

    上一篇文章写了ArcMap和ArcGIS Pro中加载百度地图 的方法 一次没有把百度影像加载的功能开发出来,趁这几天有空整理了下 加载方法按照上次那篇文章操作. 百度影像wmts加载地址:http: ...

  2. (转) Arcgis for js加载百度地图

    http://blog.csdn.net/gisshixisheng/article/details/44853709 概述: 在前面的文章里提到了Arcgis for js加载天地图,在本节,继续讲 ...

  3. Arcgis for js加载百度地图

    看转:https://blog.csdn.net/qq_41046162/article/details/80248281 通过学习了一段时间的arcgis for js,让我来讲一下如何在arcgi ...

  4. Delphi中用Webbrowser加载百度地图滚轮失效(ApplicationEvents里使用IsChild提前判断是哪个控件的消息)

    在Delphi中使用Webbrowser加载百度地图时,点击了其它界面,再回到百度地图中,即使点击了鼠标,再用滚轮也不能缩 放地图,除非点地图里面的自带的控件,之后才能缩放,原因是因为其它窗体控件获得 ...

  5. arcgis JavaScript 加载 mapbox地图

    mapbox 地图现在是越来越好看了, 随便试 /** * Created by Administrator on 2018/5/15 0015. */ import * as esriLoader ...

  6. 关于ios 程序加载百度地图lib,出现链接错误:找不到符号 (null): _OBJC_CLASS_$_BMKMapManager的解决办法

    报告的错误信息 ld: warning: ignoring file /Users/5012/Documents/sphuang/IOS_project/baidu_map/ShareLocation ...

  7. 在bootstrap modal 中加载百度地图的信息窗口失效解决方法

    这个问题其实很傻,解决方法没有任何技术含量,只是记录下工作中发生的事. 前阵子给一个汽车集团客户做了一个经销商查询系统,其中一个功能是使用地图标注经销商店面地址,并且实现导航功能. 页面演示地址:ht ...

  8. openlayers加载百度地图

    最近在做openlayers添加百度地图的扩展类,经过轮番的尝试,终于将其接入了,但是发现偏差比较大,有根据百度的坐标进行了比对,将切片原点进行了调整,发现OK了.打开百度地图,可以看出切片的路径如: ...

  9. Vue中加载百度地图

    借助百度地图的 LocalSearch 和 Autocomplete 两个方法 实现方式:通过promise以及百度地图的callback回调函数 map.js 1 export function M ...

随机推荐

  1. 《VR入门系列教程》之11---基本几何-材质-光照

    网格.多边形.顶点     绘制3D图形有许多方法,用的最多的是用网格绘制.一个网格由一个或多个多边形组成,这些多边形的顶点都是三维空间中的点,它们具有x.y.z三个坐标值.网格中通常采用三角形和四边 ...

  2. IIS短文件名漏洞复现

    IIS短文件名漏洞复现 一.漏洞描述 此漏洞实际是由HTTP请求中旧DOS 8.3名称约定(SFN)的代字符(~)波浪号引起的.它允许远程攻击者在Web根目录下公开文件和文件夹名称(不应该可被访问). ...

  3. JSP一二章笔试题

    一. 什么是B/S架构,什么是C/S架构B/S(Browser/Server) 浏览器/服务器 C/S(Client/Server) 客户端/服务器 二. B/S架构的工作原理 浏览器请求服务器 通过 ...

  4. java连接oracle数据库jdbc

    driver = oracle.jdbc.driver.OracleDriver url = jdbc:oracle:thin:@localhost:1521:orcl

  5. 【iOS】获取视图的中心和宽高

    示例代码: NSLog(@"%f, %f", self.view.center.x, self.view.center.y); NSLog(@"%f, %f", ...

  6. 又一个轮子--QMapper

    1 前言 我喜欢造轮子,一是造的时候就是深刻学习的时候,二是造着造着,说不定某天比世面上的其它轮子都要好呢.比如造过Networksocket,也造过WebApiClient,现在我也要造一个Mapp ...

  7. tensorflow学习笔记——常见概念的整理

    TensorFlow的名字中已经说明了它最重要的两个概念——Tensor和Flow.Tensor就是张量,张量这个概念在数学或者物理学中可以有不同的解释,但是这里我们不强调它本身的含义.在Tensor ...

  8. Shiro权限框架与SpringMVC集成

    1.Shiro整合SpringMVC 我们学习Shiro框架肯定是要应用到Web项目上的,所以我们需要整合Shiro和SpringMVC 整合步骤: 第一步:SpringMVC框架的配置 spring ...

  9. 算法与数据结构基础 - 链表(Linked List)

    链表基础 链表(Linked List)相比数组(Array),物理存储上非连续.不支持O(1)时间按索引存取:但链表也有其优点,灵活的内存管理.允许在链表任意位置上插入和删除节点.单向链表结构一般如 ...

  10. mac 下 docker 镜像加速器

    配置镜像加速器 具体设置见下图即可.