1. 程式人生 > >Cesium 呼叫高德地圖天地圖本地瓦片資料

Cesium 呼叫高德地圖天地圖本地瓦片資料

網上看到了geoserver+cesium+全能地圖下載器的離線使用組合,但是遇到的問題是,如果將下載器的瓦片資料轉換成geotiff的大圖的話,伺服器需要消耗大量的資源用於對tiff大圖的切割,於是思考如何實現cesium直接讀取瓦片資料。

首先看高德地圖的瓦片伺服器,是比較經典的瓦片服務。通過載入高德地圖的衛星地圖,控制檯裡就可以看到。

很容易就可以發現,這裡的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是我的瓦片資料儲存資料夾。可以使用全能地圖下載器直接下載。

這樣就可以實現快速的本地載入離線地圖瓦片了。

這是最終效果,可以看到清晰度逐漸增加在地圖的某一個部分,那就是這次下載的西安市地圖全貌。

天地圖,高德地圖,必應地圖都可以這麼操作。