Cesium 如何成功離線使用

2021-10-10 16:48:06 字數 2059 閱讀 7357

下面介紹如何讓cesium在斷開網路的情況下可以成功啟動出現三維球體。cesium的原始碼中有幾處地方是在預設情況下會向cesium ion服務發起請求獲取資料。如果在沒有網路的情況下,則會報如下圖異常,導致地圖無法成功顯示。

這裡我們就發現cesium在請求乙個服務連線失敗了。跟著關鍵字"v1/assets/"在原始碼中檢視,可以發現到底是**的函式定義的請求。

找到下圖的位置,發現這裡就是構造請求,發起請求的地方。屬於_createendpointresource函式。

接著通過「_createendpointresource」找到呼叫該函式的地方

其中一處可以看到**是被定義在fromassetid中。我們一層一層往上查詢,找到主要有以下兩個函式中有呼叫該方法

所以我們要避免呼叫這些函式。上面的第一報錯就是我在**中使用了createworldterrain函式。所以需要去掉或者注釋掉該**。

這時候還是存在另外乙個錯誤,也就是還是有一處地方未發現。另外乙個錯誤主要還是在上面通過「_createendpointresource」找到,在function ionimageryprovider(options)裡面有呼叫

而通過ionimageryprovider仔細查詢可以找到在createdefaultimageryproviderviewmodels函式有使用。這個函式也是最常見的乙個建立預設圖層的方法,將裡面的所有providerviewmodels.push**注釋掉或者去掉,返回空的providerviewmodels

注釋掉這個還不行,還需注意一處地方。就是createworldimagery方法。這個方法通過建立ionimageryprovider物件也會呼叫ion服務請求而導致異常

在上圖**處可以知道,在初始化的時候,如果我們沒有自己傳入乙個imageryprovider物件。那麼會自動呼叫createworldimagery方法。所以也就產生第二個錯誤了。

在我們初始化時,定義乙個預設的imageprovider物件,如下圖

最終成功出現三維地球,效果圖如下:

離線的環境搭建好後,便可以嘗試自己載入離線發布的地圖圖層和模型資料了。

cesium載入離線tms切片

參考 3 修改tile.xml名稱為tilemapresource.xml 4 新增web.config檔案,內容為 5 把上面的切片檔案放在test目錄下,結構如下 6 把test資料夾下的內容發布為應用程式,如下 呼叫 為 var url http localhost 80 test tms 瓦...

linux如何成功地離線安裝docker

於是就開始找一些離線安裝的方法,但是網上關於離線安裝docker的資料很雜亂,一開始找到了很多方法和安裝包都不合適,許多的方法也比較麻煩,最後終於找到了一些簡便的操作方法來離線安裝docker,已經驗證成功,安裝十分方便有效,所以給大家分享一下。2 將docker 18.03.1 ce.tgz放置到...

svg 配合cesium使用

恢復內容開始 1 svg簡介 在 2003 年一月,svg 1.1 被確立為 w3c 標準。參與定義 svg 的組織有 太陽微系統 adobe 蘋果公司 ibm 以及柯達。與其他影象格式相比,使用 svg 的優勢在於 svg 的主要競爭者是 flash。與 flash 相比,svg 最大的優勢是與其...