前言

虽然Cesium默认已经实现了Bing地图的调用,但需要申请key。如何不用key就可调用?抱着好奇的心态去看了下他的源代码。通过分析源代码,最终完成了调用,记录如下:

Cesium原始调用

在线代码

关键源码

BingMapsImageryProvider.tileXYToQuadKey = function (x, y, level) {var quadkey = "";for (var i = level; i >= 0; --i) {var bitmask = 1 << i;var digit = 0;if ((x & bitmask) !== 0) {digit |= 1;}if ((y & bitmask) !== 0) {digit |= 2;}quadkey += digit;}return quadkey;
};
function buildImageResource(imageryProvider, x, y, level, request) {var imageUrl = imageryProvider._imageUrlTemplate;var subdomains = imageryProvider._imageUrlSubdomains;var subdomainIndex = (x + y + level) % subdomains.length;return imageryProvider._resource.getDerivedResource({url: imageUrl,request: request,templateValues: {quadkey: BingMapsImageryProvider.tileXYToQuadKey(x, y, level),subdomain: subdomains[subdomainIndex],culture: imageryProvider._culture,},queryParameters: {// this parameter tells the Bing servers to send a zero-length response// instead of a placeholder image for missing tiles.n: "z",},});
}

代码实现

  1. Bing地图信息获取,请戳

  2. 关于地址及请求参数的解析参见代码

  3. 调用地址

风格 地址
影像 https://ecn.t{s}.tiles.virtualearth.net/tiles/a{q}.jpeg?n=z&g=11404
影像带标注 https://ecn.t{s}.tiles.virtualearth.net/tiles/h{q}.jpeg?n=z&g=11404&mkt=
https://t{s}.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{q}?n=z&mkt=en-US&it=A%2CG%2CL&og=1638
黑色 https://t{s}.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{q}?n=z&mkt=en-US&it=G%2CL&cstl=WD&og=1638
道路 https://ecn.t{s}.tiles.virtualearth.net/tiles/r{q}.jpeg?n=z&g=11404&mkt=&shading=hill
亮色 https://t{s}.ssl.ak.dynamic.tiles.virtualearth.net/comp/ch/{q}?n=z&mkt=en-US&it=G%2CL&cstl=WL&og=1638
  1. 代码实现,在线代码
  2. 关键代码
//此方法应该是QGIS中q参数的计算方法
const tileXYToQuadKey = function (x, y, level) {var quadkey = "";for (var i = level; i >= 0; --i) {var bitmask = 1 << i;var digit = 0;if ((x & bitmask) !== 0) {digit |= 1;}if ((y & bitmask) !== 0) {digit |= 2;}quadkey += digit;}if (quadkey[0] === '0') {quadkey = quadkey.substr(1);}return quadkey;
};
const imageryProvider = new Cesium.UrlTemplateImageryProvider({url: 'https://ecn.t{s}.tiles.virtualearth.net/tiles/a{q}.jpeg?n=z&g=11404',subdomains: ['0', '1', '2', '3'],tilingScheme: new Cesium.WebMercatorTilingScheme(),customTags: {q: function (imageryProvider, x, y, level) {const result = tileXYToQuadKey(x, y, level);console.log(imageryProvider, x, y, level, result);return result;},},
});

Cesium无需KEY调用Bing地图相关推荐

  1. Cesium使用技巧 - 离线情况下使用自定义地图服务(取消对Bing地图的访问)

    Cesium使用技巧 - 离线情况下使用自定义地图服务(取消对Bing地图的访问) 本人在做项目的时候,由于项目要求限制,必须在 完全断网的情况下 使用Cesium.因此根据Cesium的API文档, ...

  2. 043:cesium加载Bing地图(多种形式)

    第043个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载加载Bing地图.这里显示4种形式的地图,分别为:AERIAL.ROAD.CANVAS_DARK.AERIAL_WITH ...

  3. 调用高德地图,百度地图,腾讯地图,苹果地图路线规划(无需集成SDK)

    1.调用百度地图 baidumap if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidu ...

  4. SharePoint2010整合Silverlight 4应用——Bing地图控件

    本文中我们将展示如何在SharePoint 2010中集成Silverlight应用.例子中会用到Bing Map 控件.完成后的效果图如下: 开发环境 本例中,我们使用到的开发环境包括: 1.Vis ...

  5. uni-app web-view调用谷歌地图

    由于公司的业务主要是非洲的,所以做地图功能的时候就需要用到一款国际地图,高德直接不支持,百度的在uni-app上配置了没效果,苹果地图也找过,但是在indentifiers下面没有找到map IDS选 ...

  6. php 调用百度地图接口

    原文转载自:http://www.cnblogs.com/jianglan/archive/2013/05/31/3108646.html http://api.map.baidu.com/lbsap ...

  7. 【c#】Form调用百度地图api攻略及常见问题

    首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...

  8. C#调用百度地图API入门解决BMap未定义问题

    本文主要是最近帮助好友研究JavaScript的百度地图API,同时显示到C# Winform界面.同时遇到了BMap未定义的错误(BMap is not defined)及解决方法.以前写过基于An ...

  9. 高德地图api接口文档_在 R 语言里面调用高德地图接口:地理编码与路径规划

    你知道从广州南站去珠江新城怎么走么?今天就让我们一起使用 R 语言调用高德地图的地理编码(地址转经纬度)接口和路径规划接口来回答这个问题. 准备工作 注册高德地图,创建应用添加 Key(注意申请 Ke ...

最新文章

  1. 使用overlap-add方法计算两个信号的卷积示例(在频域计算卷积)
  2. 提供MapXtreme 2004 6.2 NCP破解文件及安装方法(已经不能提供了,等待破解最新的吧)...
  3. git fetch 和git pull 的差别
  4. 史上最详细的js日期正则表达式分享
  5. 《四世同堂》金句摘抄(七)
  6. [react] React根据不同的环境打包不同的域名?
  7. idea 编辑区设置
  8. aspnet管理员用户登录_WINDOWS/LINUX系统修改管理员密码方法
  9. 这款能够生成文档的接口测试软件,为什么越来越受欢迎?
  10. 怎样解决DEDE织梦友情链接字数限制与链接个数限制
  11. OSChina 周五乱弹 —— IG wxz 请联系小小编辑付钱删帖
  12. 春节晚报 | 2月1日 星期二 | 快手推出首届“新春招工会”;罗永浩称“不做VR和元宇宙”;戴姆勒正式更名为梅赛德斯-奔驰...
  13. Windows Sever(修改计算机名并加入工作组)
  14. 人脸识别扫描(活体检测功能,眨眼、摇头、点头),身份证认证
  15. vuex中subscribe的使用
  16. 软件测试发展前景进阶路线
  17. 抖音快手短视频批量去水印采集软件v1.8使用文档
  18. 使用ARD远程管理用户的Parental Control和Dock
  19. python报错No module named XXX解决方法
  20. Windows XP 加速

热门文章

  1. linux下查看网卡限速,linux 网卡限速
  2. 微信小程序开发 — 顶部导航栏
  3. Leetcode 413. 等差数列划分
  4. 电机绕组I-pin、Hair-pin、X-pin、S-winding的区别
  5. 如何为计算机设置ip地上,如何给局域网内的电脑设置ip地址
  6. mysql datareader dataset_c# 将数据库返回对象DataReader转换为DataSet的方法分享
  7. 【数据压缩】MP4文件格式分析
  8. 20170803~20170804
  9. windows 7编辑启动菜单 bcdedit linux,windows7系统下删除wubi安装的ubuntu启动项使用命令bcdedit解决...
  10. 【leetcode】帕斯卡三角形