Cesium无需KEY调用Bing地图
前言
虽然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",},});
}
代码实现
Bing地图信息获取,请戳
关于地址及请求参数的解析参见代码
调用地址
风格 | 地址 |
---|---|
影像 | 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 |
- 代码实现,在线代码
- 关键代码
//此方法应该是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地图相关推荐
- Cesium使用技巧 - 离线情况下使用自定义地图服务(取消对Bing地图的访问)
Cesium使用技巧 - 离线情况下使用自定义地图服务(取消对Bing地图的访问) 本人在做项目的时候,由于项目要求限制,必须在 完全断网的情况下 使用Cesium.因此根据Cesium的API文档, ...
- 043:cesium加载Bing地图(多种形式)
第043个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载加载Bing地图.这里显示4种形式的地图,分别为:AERIAL.ROAD.CANVAS_DARK.AERIAL_WITH ...
- 调用高德地图,百度地图,腾讯地图,苹果地图路线规划(无需集成SDK)
1.调用百度地图 baidumap if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidu ...
- SharePoint2010整合Silverlight 4应用——Bing地图控件
本文中我们将展示如何在SharePoint 2010中集成Silverlight应用.例子中会用到Bing Map 控件.完成后的效果图如下: 开发环境 本例中,我们使用到的开发环境包括: 1.Vis ...
- uni-app web-view调用谷歌地图
由于公司的业务主要是非洲的,所以做地图功能的时候就需要用到一款国际地图,高德直接不支持,百度的在uni-app上配置了没效果,苹果地图也找过,但是在indentifiers下面没有找到map IDS选 ...
- php 调用百度地图接口
原文转载自:http://www.cnblogs.com/jianglan/archive/2013/05/31/3108646.html http://api.map.baidu.com/lbsap ...
- 【c#】Form调用百度地图api攻略及常见问题
首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...
- C#调用百度地图API入门解决BMap未定义问题
本文主要是最近帮助好友研究JavaScript的百度地图API,同时显示到C# Winform界面.同时遇到了BMap未定义的错误(BMap is not defined)及解决方法.以前写过基于An ...
- 高德地图api接口文档_在 R 语言里面调用高德地图接口:地理编码与路径规划
你知道从广州南站去珠江新城怎么走么?今天就让我们一起使用 R 语言调用高德地图的地理编码(地址转经纬度)接口和路径规划接口来回答这个问题. 准备工作 注册高德地图,创建应用添加 Key(注意申请 Ke ...
最新文章
- 使用overlap-add方法计算两个信号的卷积示例(在频域计算卷积)
- 提供MapXtreme 2004 6.2 NCP破解文件及安装方法(已经不能提供了,等待破解最新的吧)...
- git fetch 和git pull 的差别
- 史上最详细的js日期正则表达式分享
- 《四世同堂》金句摘抄(七)
- [react] React根据不同的环境打包不同的域名?
- idea 编辑区设置
- aspnet管理员用户登录_WINDOWS/LINUX系统修改管理员密码方法
- 这款能够生成文档的接口测试软件,为什么越来越受欢迎?
- 怎样解决DEDE织梦友情链接字数限制与链接个数限制
- OSChina 周五乱弹 —— IG wxz 请联系小小编辑付钱删帖
- 春节晚报 | 2月1日 星期二 | 快手推出首届“新春招工会”;罗永浩称“不做VR和元宇宙”;戴姆勒正式更名为梅赛德斯-奔驰...
- Windows Sever(修改计算机名并加入工作组)
- 人脸识别扫描(活体检测功能,眨眼、摇头、点头),身份证认证
- vuex中subscribe的使用
- 软件测试发展前景进阶路线
- 抖音快手短视频批量去水印采集软件v1.8使用文档
- 使用ARD远程管理用户的Parental Control和Dock
- python报错No module named XXX解决方法
- Windows XP 加速
热门文章
- linux下查看网卡限速,linux 网卡限速
- 微信小程序开发 — 顶部导航栏
- Leetcode 413. 等差数列划分
- 电机绕组I-pin、Hair-pin、X-pin、S-winding的区别
- 如何为计算机设置ip地上,如何给局域网内的电脑设置ip地址
- mysql datareader dataset_c# 将数据库返回对象DataReader转换为DataSet的方法分享
- 【数据压缩】MP4文件格式分析
- 20170803~20170804
- windows 7编辑启动菜单 bcdedit linux,windows7系统下删除wubi安装的ubuntu启动项使用命令bcdedit解决...
- 【leetcode】帕斯卡三角形