關於ArcGIS動態圖層空間內柵格數據,JS前端顯示顏色不正確的解決方案


ArcGIS的動態空間,可承載Table,Shp,Raster等數據。

 

我們的需求是,每天客戶有新的衛星數據,但是不同類型,有多波段Landsat衛星數據,有Modis數據等。不定期更新到共享文件夾,BS程序要能讀取並顯示。

首先想到的MapService的動態圖層空間功能。但遇到的問題是,動態空間的柵格數據無法正確的設置拉伸參數。https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-Sublayer.html#DynamicDataLayer

官方文檔描述的Renderer只針對,Shp,Table數據,對Raster的渲染無法進行,當然ImageService服務是可以的。但那個不符合我們需求。

 

  最佳實踐

經過多輪測試,發現動態空間文件夾的柵格數據,ArcGISServer僅僅做最基礎的顯示:對多波段數據,不拉伸,且只認為是RGB波段,相當於Stretch為None,如下圖;另外,ArcGISServer對索引顏色的TIF可正確識別,比如南北極海冰數據。

 

這樣,就要求我們把各種多波段,各種數據處理好(拉伸好)再轉為RGB波段的TIF,放入動態圖層的共享空間。

 勾選Use Renderer和Force RGB,會使轉出的TIF為RGB。

Compression Type,可選,無所謂。

 然后,再對導出的圖做下金字塔。 這樣,放置在動態圖層文件夾的數據,前端就能正確顯示了。

注意,制作完金字塔后,會有ovr和aux.xml,2個文件。其中ovr為金字塔本身。aux.xml要注意,僅僅1K大小才正確。

 

因為若點擊了Calculate Statistics統計數據功能,則aux.xml文件就會變大,因為此功能會寫入一些數據在aux文件。

變大后的aux.xml文件,會影響ArcGISServer讀取動態突出文件夾TIF時的行為,導致BS端顯示出一些拉伸特性。

 

現在可以驗證結果了:

    在Export頁面,Dynamic Layers:輸入如下內容,即可看到動態圖層空間的顯示。注意Bonding Box。

[{

"id": 501,
"source":
{
"type": "dataLayer",
"dataSource": {
"dataSourceName": "m1.tif",
"workspaceId": "WS1",
"type": "raster"
}
} }]

 

 

 

 


免責聲明!

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



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