ArcMap和ArcGIS Pro加载百度地图
前面发布了两篇我用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加载百度地图的更多相关文章
- 更新!ArcMap和ArcGIS Pro加载百度影像地图
上一篇文章写了ArcMap和ArcGIS Pro中加载百度地图 的方法 一次没有把百度影像加载的功能开发出来,趁这几天有空整理了下 加载方法按照上次那篇文章操作. 百度影像wmts加载地址:http: ...
- (转) Arcgis for js加载百度地图
http://blog.csdn.net/gisshixisheng/article/details/44853709 概述: 在前面的文章里提到了Arcgis for js加载天地图,在本节,继续讲 ...
- Arcgis for js加载百度地图
看转:https://blog.csdn.net/qq_41046162/article/details/80248281 通过学习了一段时间的arcgis for js,让我来讲一下如何在arcgi ...
- Delphi中用Webbrowser加载百度地图滚轮失效(ApplicationEvents里使用IsChild提前判断是哪个控件的消息)
在Delphi中使用Webbrowser加载百度地图时,点击了其它界面,再回到百度地图中,即使点击了鼠标,再用滚轮也不能缩 放地图,除非点地图里面的自带的控件,之后才能缩放,原因是因为其它窗体控件获得 ...
- arcgis JavaScript 加载 mapbox地图
mapbox 地图现在是越来越好看了, 随便试 /** * Created by Administrator on 2018/5/15 0015. */ import * as esriLoader ...
- 关于ios 程序加载百度地图lib,出现链接错误:找不到符号 (null): _OBJC_CLASS_$_BMKMapManager的解决办法
报告的错误信息 ld: warning: ignoring file /Users/5012/Documents/sphuang/IOS_project/baidu_map/ShareLocation ...
- 在bootstrap modal 中加载百度地图的信息窗口失效解决方法
这个问题其实很傻,解决方法没有任何技术含量,只是记录下工作中发生的事. 前阵子给一个汽车集团客户做了一个经销商查询系统,其中一个功能是使用地图标注经销商店面地址,并且实现导航功能. 页面演示地址:ht ...
- openlayers加载百度地图
最近在做openlayers添加百度地图的扩展类,经过轮番的尝试,终于将其接入了,但是发现偏差比较大,有根据百度的坐标进行了比对,将切片原点进行了调整,发现OK了.打开百度地图,可以看出切片的路径如: ...
- Vue中加载百度地图
借助百度地图的 LocalSearch 和 Autocomplete 两个方法 实现方式:通过promise以及百度地图的callback回调函数 map.js 1 export function M ...
随机推荐
- 2017day1
http://www.cnblogs.com/alex3714/articles/5465198.html 四.Python安装 windows 1 2 3 4 5 6 7 1.下载安装包 h ...
- Modify column Vs change column
引言 I know, we can not rename a column using modify column syntax,but can change column syntax. My qu ...
- C 单链表 实现约瑟夫环
list.h #ifndef _List_H #define _List_H typedef int ElementType; struct Node; typedef struct Node *Pt ...
- Clock Crossing Adapter传输效率分析 (Latency增加,传输效率降低)
原创By DeeZeng [ Intel FPGA笔记 ] 在用Nios II测试 DDR3时候发现一个现象 (测试为:写全片,读全片+比对) 用单独的PLL产生时钟(200MHz)驱动 Nios I ...
- sqlmap续
sqlmap续 注入语句(知道绝对路径时候可用) http://192.168.99.171/test2/sqli/example10.php?catid=3’union select 1,’< ...
- .NET为何物?
.NET是 Microsoft XML Web services 平台.XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统.设备或编 ...
- css清除select默认的样式
select在firefox与chrome的显示是不一样的,我们一般选择通过css清除掉css的默认样式,然后再增添自定义的样式来解决,css我们一般用这么几行代码来清除默认样式: 1 select ...
- html5教程 《实用技巧》—让你的网站变成响应式的3个简单步骤
如今,一个网站只在桌面屏幕上好看是远远不够的,同时也要在平板电脑和智能手机中能够良好呈现.响应式的网站是指它能够适应客户端的屏幕尺寸,自动响应客户端尺寸变化.在这篇文章中,我将向您展示如何通过3个简单 ...
- 微信小程序登陆流程图时序图
微信小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系. 微信小程序登录流程时序图 说明 调用 wx.login() 获取 临时登录凭证cod ...
- Linux下Docker以及portainer相关配置
一.安装使用Docer CE 本文以CentOS 7为例,安装docker CE版本,docker有两种版本,社区版本CE和企业版本EE,此处学习研究以CE版本为例, 两种安装方式可选:1.使用yum ...