背景:
動態(tài)地圖服務(wù)在三維場景下不僅慢,而且顯示相對模糊。ArcGIS API for JavaScript。
現(xiàn)象歸納:
默認情況下,會以2048*2048的size。請求兩次投影后范圍為xmin ymin xmax ymax的一個區(qū)域的地圖。
請求1:(xmax-xmin)/2048 = view.zoom(近似取整)-1 對應(yīng)級別的resolution?
請求2:(xmax-xmin)/2048 =view.zoom(近似取整)-2級別的resolution(范圍較大的一次請求)。
思路:
要改進模糊問題,識別resolution較小的一次請求,嘗試更改size為4096
要改進慢的問題,識別和阻斷resolution值過大的一次請求?;驀L試更改size為1024。
一旦視角傾斜。范圍較大的請求resolution更大。對應(yīng)的lod的zoom層級view.zoom - n n更大。
同事挖掘的用戶需求:高分屏加速。
????1.在不存在效率問題的環(huán)境下讓地圖模糊問題更加清晰。
????2.自定義切片圖層適應(yīng)高分屏,提高效率。
2022年6月28日測試,清晰度無法通過調(diào)整width和height圖片大小解決。請求來的圖片不是簡單貼在該位置,渲染引擎使他模糊。請求來的圖片直接查看是很清晰的。
清晰問題解決方法:
增大DPI,如調(diào)整96為120。同時稍微調(diào)節(jié)width和height x1.05 或不調(diào)節(jié)圖片大小,直接使用MapImageLayer設(shè)置dpi為120在SceneView中即可。文字能夠更加清晰。調(diào)整完DPI后,圖片大小也減小了,帶寬問題也得到緩解。


大范圍請求導(dǎo)致效率問題的解決方法:
使用BaseDynamicLayer創(chuàng)建自定義動態(tài)圖層。重寫fetchImage方法。

以上代碼算是針對現(xiàn)象歸納理論的實踐。
弊端:
視角平視,遠處地圖級別和近處不一樣,遠處更為模糊,有種早版本的API的SceneView下的切片圖層的割裂的感覺。這就是追求效率帶來的不清晰的一點弊端。

還是建議設(shè)置SceneView.constraints。稍微限制一下傾斜視角,如果不是在看具體建筑物的時候。