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

网上看到了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是我的瓦片数据存储文件夹。可以使用全能地图下载器直接下载。

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

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

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

发布了14 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/myc0523/article/details/83060883
今日推荐