ArcGIS Pro 添加 Bing Maps 底图
在之前的文章《ArcGIS Pro 服务国内被封?国内的用户惨了...》中小编介绍了关于ArcGIS Pro 国内服务被屏蔽的相关介绍,后面虽然服务恢复了,但已经全线换成了天地图服务,底图服务不多,仅有6个可用,所以小编最近一直在尝试分享更多国内可用的底图服务。今天小编给大家介绍一种在ArcGIS Pro 中添加 Bing Maps 底图的方法,有点绕,仅供大家参考。
PS:小编之前分享的底图服务可以参考最后的链接。

官方方法
如果你是正版的用户,ArcGIS Pro官方是直接支持添加Bing Maps底图的。
在「Map」选项卡 → 「Basemap」 → 选择
- Bing Maps Aerial(卫星)
- Bing Maps Roads(道路)
- Bing Maps Hybrid(混合)
有个前提:你需要登录 ArcGIS Online 账户并启用 Bing Maps 授权(组织账号管理员配置),我相信看我文章的多数人是没有 ArcGIS Online 账户的,并且现在 arcgis.com 域名的底图的服务已经被被屏蔽,强行添加会显示504,所以这种方法对于多数人来说并不可用。
解决思路
小编最先看到这种方法是在使用之前推荐的QGIS插件《QGIS插件推荐——QuickMapService(底图插件)》中找到了关于Bing Maps的地址。
https://t0.tiles.virtualearth.net/tiles/a{q}.jpeg?g=685&mkt=en-us&n=z
小编直接将这个地址添加到ArcGIS Pro中,发现无论如何都添加不进去,后面发现 ArcGIS Pro 不直接支持 {q} 这种 Bing quadkey 编码方式的 URL 模板,因为它与标准的 {x}/{y}/{z} Web Mercator XYZ 瓦片索引不同,但好在 quadkey 编码方法可以和 {x}/{y}/{z} 兼容互算。
于是小编有了一个大胆的想法,能不能启动一个服务器将 {q} 转换成 {x}/{y}/{z},然后使用添加服务的方式添加 Bing Maps 底图呢?经过小编的实践找到了国内可用的添加方式。
核心代码
def tileXYToQuadKey(x, y, zoom):
quadKey = ""
for i in range(zoom, 0, -1):
digit = 0
mask = 1 << (i - 1)
if (x & mask) != 0:
digit += 1
if (y & mask) != 0:
digit += 2
quadKey += str(digit)
return quadKey
最核心的就是这个函数,其输入是传统的x/y/z坐标,输出是 Bing Maps 的 quadkey 编码,就这么简单。关于quadkey的完整介绍可以参考官方文档《Bing Maps Tile System》
使用方法
小编将完整源代码打包了一份,地址如下:
为了防止资源恶意爬取导致被和谐,此处内容被作者隐藏。关注本站微信公众号,回复“资源下载”,获取验证码。
在微信里搜索“麻辣GIS”或微信扫描右侧二维码即可关注本站微信公众号。
具体使用方法如下:
先将下载的文件解压一个目录,得到一个 add_bingmap_to_arcgispro.py 文件,这个目录后面会用,最好简单一点,没有中文及空格。然后打开ArcGIS Pro,点击 工程 -- 包管理器

点击 添加包,输入 flask

然后点击安装,安装完成如图:

回到ArcGIS Pro,选择 分析 -- Python -- Python窗口,打开Python控制器,输入如下代码:
exec(open(r"C:\替换成你自己的目录\add_bingmap_to_arcgispro.py", "r", encoding='utf-8').read())
直接回车确认,这时候会显示如下的界面:

然后点击 地图 -- 从路径添加数据

复制卫星底图地址: http://127.0.0.1:5000/bing/tiles/{z}/{x}/{y}.jpeg,输入进去

点击确定,没有意外的话,Bing地图就添加成功了。

总结
这个底图添加还是比较有趣的,和传统的国内添加Google Maps的底图思路相似,但又有所不同。相同的是都需要一个中间层来完成转发,而Google Maps解决的是网络问题,Bing Maps解决的是quadkey 编码计算的问题。
行文至此,其实过程中还遇到了不少问题,一些经验总结会在后面分享,大家有其他需要的底图也可以参考这种方法。
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。