Cesium 4490 解決方案


今天同事反饋我們的系統加載不了國家20004490)的WMTS服務,剛改完的功能,用別的地方的數據可以,新提供的數據卻不行,經過調試,發現確實不行。

然后也在百度上找了一下Cesium 4490 ,主要參考解決思路有下面這兩個

https://blog.csdn.net/chenguizhenaza/article/details/112003278

 

https://blog.csdn.net/A873054267/article/details/86652620

這兩篇文章,並沒有解決問題,可以肯定的是代碼並沒有問題,因為有4490的數據可以加載,網上也有其他人成功加載過,那問題肯定出在數據上。

 

整理了一下思路

1、核實數據坐標系,加載成功過的數據和加載不成功的數據坐標系都是4490,

2、向同事要了加載不成功服務的切片方案(2000.xml)和加載成功的服務的切片方案(Conf2000天地圖切片方案(5-16).xml),通過比較發現

 

 

2000.xml 2000天地圖切片方案(5-16).xml 區別在於200021級切片,2000天地圖只有20級切片,2000的切片方案第0級是多出來的一級,其他級別與2000天地圖一致。

3、找了網上公開互聯網的天地圖切片方案,發現與2000天地圖切片方案除了原點不一致,其他都一致

 

 

 

會不會是級別導致的問題呢?

 

4、查看系統請求圖片的錯誤

 

如果是級別問題,那么請求的時候如果級別+1,會不會返回成功呢?

神奇的是竟然返回成功圖片了,隨機測試了幾個無法返回圖片的請求,在Level+1情況下,都返回了圖片

5、驗證整個服務,既然是級別問題,那如果我在服務器上直接修改切片的文件夾級別(可以看下ArcGISServer 切片規則,知道原由),把每個級別都減少1,比如L17改為L16

請求成功了

 

 

解決方案

1、修改Cesium 源碼WebMapTileServiceImageryProvider,判斷WMTS服務的切片級別,請求數據時調整級別,這個方案比較麻煩,對源碼的理解要比較深入,才能修改,暫時沒用這種方式

2、修改數據

1)重新發布數據,用2000天地圖的切片方案重新切片

2)如果客戶已經用2000的切片方案切好的服務,那可以重新發布一個服務,選擇2000的切片方案,但是不生成切片(生成切片會比較長的時間,對客戶來說也解釋不了,客戶只會認為你的系統支持不了2000坐標系的數據),把原來已經切好的切片目錄拷貝到新服務的切片目錄下,並把這些切片目錄的名稱級別都減少1,如果L21改為L20

 

加載代碼:

 

 

 

 

其他問題

互聯網2000的切片方案,原點是400-400,似乎也加載不了,有數據的時候可以測試下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM