Cesium 呼叫高德地圖天地圖本地瓦片資料
阿新 • • 發佈:2018-12-15
網上看到了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是我的瓦片資料儲存資料夾。可以使用全能地圖下載器直接下載。
這樣就可以實現快速的本地載入離線地圖瓦片了。
這是最終效果,可以看到清晰度逐漸增加在地圖的某一個部分,那就是這次下載的西安市地圖全貌。
天地圖,高德地圖,必應地圖都可以這麼操作。