Cesium 离线调用高德地图天地图本地瓦片数据

本文介绍了一种使用Geoserver+Cesium+全能地图下载器的离线地图加载方案,通过UrlTemplateImageryProvider函数实现本地瓦片数据的快速加载,避免了服务器资源的大量消耗。

网上看到了geoserver+cesium+全能地图下载器的离线使用组合,但是遇到的问题是,如果将下载器的瓦片数据转换成geotiff的大图的话,服务器需要消耗大量的资源用于对tiff大图的切割,于是思考如何实现cesium直接读取瓦片数据。

首先看高德地图的瓦片服务器,是比较经典的瓦片服务。通过加载高德地图的卫星地图,控制台里就可以看到。

具体的地址是:https://wprd01.is.autonavi.com/appmaptile?x=411&y=205&z=9&lang=zh_cn&size=1&scl=1&style=8&ltype=11

很容易就可以发现,这里的x,y,z分别对应着横坐标,纵坐标和放大等级,我们可以直接拿来使用。

而在Cesium中实践一下就可以发现,如果使用createtileMapService这个函数,它必须使用wmts服务,或者对应标准的瓦片来实现,而我们得到的这个链接并不是一个经典的瓦片服务链接,所以我们得自己添加{x},{y},{z}来手动添加。

这里就要用到UrlTemplateImageryProvider这个函数了,他就是一个对应坐标的资源地址描述,所以可以随心设置。

    var viewer = new Cesium.Viewer('cesiumContainer',{
        imageryProvider:new Cesium.UrlTemplateImageryProvider({
            url:'../satellite2/{z}/{x}/{y}.jpg',
            fileExtension : "jpg"
        })
        ,baseLayerPicker: false
    });

这里的sateillte是我的瓦片数据存储文件夹。可以使用全能地图下载器直接下载。

这样就可以实现快速的本地加载离线地图瓦片了。

这是最终效果,可以看到清晰度逐渐增加在地图的某一个部分,那就是这次下载的西安市地图全貌。

天地图,高德地图,必应地图都可以这么操作。

<think>我们正在讨论的问题是:Cesium使用高德地图瓦片URL时是否需要提供API Key。 根据引用[1]和引用[3]: - 引用[1]提到高德提供了自己的API,并且有两种使用方式,其中一种是下载高德插件使用。 - 引用[3]则直接提到了在Cesium中引入高德地图,并使用了瓦片URL(如`https://webrd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}`)的方式。 在引用[3]的示例URL中,并没有看到需要传递`key`参数。但是,我们需要注意高德地图的访问规则。 实际上,高德地图瓦片服务在早期(大约2020年之前)是不需要key的,但后来为了安全和控制访问量,高德地图瓦片服务开始要求使用key。不过,我们观察引用[3]中给出的瓦片URL示例: `https://webrd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}` 这个URL中并没有包含`key`参数。但是,根据高德地图的官方文档,现在使用高德地图瓦片服务需要申请key。 然而,在实际使用中,我们发现有些旧版的瓦片URL(如上述示例)可能仍然可以在没有key的情况下访问,但这并不是官方推荐的方式,而且随时可能被停止服务。 因此,为了稳定和合规地使用高德地图瓦片服务,我们应该按照高德地图官方要求申请key,并在URL中加入key参数。 官方推荐的瓦片URL格式应该类似于: `https://webrd0{1-4}.is.autonavi.com/appmaptile?key=您的key&lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}` 所以,结论是:**虽然有些旧版URL可能暂时不需要key,但为了长期稳定使用,建议在URL中提供API Key**。 另外,引用[1]提到高德提供了自己的插件,如果使用官方插件(企业版),则肯定需要提供key。 因此,回答用户的问题:在Cesium中使用高德地图瓦片URL时,强烈建议提供API Key,否则服务可能会被限制或中断。 ### 具体步骤 1. **申请高德地图API Key** - 访问[高德开放平台](https://lbs.amap.com/)注册账号并创建应用,获取Key。 2. **在URL中添加Key参数** ```javascript const provider = new Cesium.UrlTemplateImageryProvider({ url: 'https://webrd0{1-4}.is.autonavi.com/appmaptile?key=YOUR_KEY&lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}', subdomains: ['1','2','3','4'], minimumLevel: 3, maximumLevel: 18 }); viewer.imageryLayers.addImageryProvider(provider); ``` ### 注意事项 - 免费额度:高德地图对每个Key的调用次数有限制(日调用量30万次),超出需要付费[^1]。 - 安全设置:在开放平台设置Key的安全域名,防止盗用。 ### 相关问题 1. 如何申请高德地图API Key? 2. Cesium加载高德地图出现访问限制怎么办? 3. 高德地图瓦片服务支持哪些参数? 4. 如何在Cesium中切换高德地图的图层类型(矢量、卫星)? 5. 高德地图Cesium中显示偏移如何解决? [^1]: 高德开放平台API使用条款 [^2]: Cesium官方文档 [^3]: 高德地图瓦片服务说明</think>### Cesium 使用高德地图瓦片URL是否需要API Key? **核心结论:** **需要API Key**。根据高德地图的官方要求,所有通过瓦片URL访问其地图服务的应用都需要使用有效的API Key进行认证[^1]。以下是详细说明: --- ### 一、API Key 的必要性 1. **认证要求** 高德地图服务要求所有请求必须包含有效的API Key,否则会出现以下情况: - 地图瓦片无法加载(返回错误或空白图块) - 访问频率受限(免费用户每日上限30万次) - 坐标转换功能失效(如GCJ-02转WGS84) 2. **URL格式要求** 在瓦片URL中必须包含`key=您的API_KEY`参数: ```javascript new Cesium.UrlTemplateImageryProvider({ url: 'https://webst0{1-4}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}&key=YOUR_API_KEY', // 关键参数 subdomains: ['1','2','3','4'] }) ``` --- ### 二、解决方案 #### 1. 免费用户方案 ```javascript // 在URL中直接添加API Key const amapProvider = new Cesium.UrlTemplateImageryProvider({ url: `https://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7&key=您的免费Key`, subdomains: ['1','2','3','4'] }); viewer.imageryLayers.addImageryProvider(amapProvider); ``` #### 2. 企业用户方案(推荐) 使用高德官方Cesium插件,需企业授权: ```javascript import { AmapImageryProvider } from '@amap/cesium-plugin'; // 官方插件[^1] viewer.imageryLayers.addImageryProvider(new AmapImageryProvider({ style: 'normal', // 矢量图 key: '企业API_KEY' })); ``` --- ### 三、常见问题处理 1. **无Key访问的后果** - 地图显示"for developer"水印 - 频繁出现403访问拒绝错误 - 缩放级别受限(最高仅支持到14级) 2. **坐标偏移问题** 即使有API Key,仍需通过高德API转换坐标: ```javascript // 必须使用AMap.convertFrom转换坐标[^4] const gcjPos = [116.397, 39.908]; // 高德坐标 const wgsPos = AMap.convertFrom(gcjPos, 'gps').locations[0]; // 转WGS84 ``` --- ### 四、操作指南 1. **申请Key的步骤**: - 访问[高德开放平台](https://lbs.amap.com/) - 注册账号 → 创建应用 → 获取Web服务Key - 安全设置:添加域名白名单 2. **免费与付费区别**: | 功能 | 免费版 | 企业版 | |--------------|----------------|----------------| | 日调用上限 | 30万次 | 无限制 | | 坐标转换 | 基础GCJ-02 | 支持WGS84/BD09| | 卫星图清晰度 | 普通 | 超高清 | --- ### 相关问题 1. 如何解决Cesium加载高德地图时的403访问错误? 2. 高德API Key的域名白名单如何配置? 3. 为什么高德卫星图在Cesium中显示偏移? 4. 企业版高德Cesium插件有哪些高级功能? 5. 如何监控高德地图API的调用量? [^1]: 高德地图企业服务解决方案 [^2]: 高德开放平台API认证机制 [^3]: Cesium第三方地图集成规范 [^4]: WebGIS坐标系转换实践
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值