基於ArcGISServer進行分頁矢量查詢的方案進階

文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/前端

1.    背景

       在空間查詢中,咱們對查詢結果要求以分頁形式進行展現。Geoserver的WFS服務提供了maxFeatures 、startIndex以及sortBy這樣的參數,經過設置這些參數的值便可實現分頁。可是arcgisserver中目前沒有這類能夠實現分頁查詢的參數,那麼該如何解決這個問題?這裏我給出三個不斷優化的解決思路。緩存

2.方案1——獲取全部查詢結果前端分頁

       該方案顧名思義,獲取到全部查詢結果後在前端進行數據組織和分頁。服務器

       優勢:實現簡單。微信

       缺點:優化

       a.當查詢返回結果過大時,數據查詢和傳輸時間都會很長 spa

       b.沒有真正體現分頁的優點,前端獲取了全部數據,卻數據展現率很低 3d

       c.arcgis一次查詢返回結果的限制(需在AGS中手動設置最大返回數)server

       d.對arcgis服務器也有不小的壓力blog

3.方案2——後臺對全部查詢結果進行緩存以支持前端分頁

       後臺進行arcgis查詢,將查詢返回的結果所有緩存:包括數據總數以及數據詳細信息。前端根據返回的總數來進行分頁設置。進行分頁跳轉時,向後臺發送請求後臺根據緩存數據進行對應的分頁數據獲取和返回。索引

       優勢:

       a.實現相對簡單

       b.查詢返回給前端的數據量大大減小,減小數據傳輸耗時,加速查詢效率。

       缺點:

       a.後臺依然要獲取到全部查詢信息,ags的查詢耗時

       b.查詢數據量太大,對ags服務器的壓力也不小

       c.緩存數據須要定時清理,不然形成太多沒必要要的緩存數據

       d.依然須要處理設置AGS單次查詢的最大返回數據量

4.方案3——基於ObjectID實現分頁查詢

        a.先進行僅返回objectID字段的查詢,獲取到全部結果的總數和主鍵值,前端進行分頁。

 

       b.點擊分頁操做時,經過每一個頁面的objectID進行指定查詢,展現結果。

       優勢:

       a.僅查詢ObjectID的方式不受ags默認返回數據量限制,並且返回結果數據量少,能夠減小傳輸耗時。

    

       b.ags對於僅查詢ObjectID時,能夠經過空間索引錶快速返回查詢結果(無需經過ObjectID再去關聯查詢屬性數據表),其效率要高於還需返回其餘屬性信息的查詢。能夠大大提升查詢效率。

 

 

                     -----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/

                                                                           若是您以爲本文確實幫助了您,能夠微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^

                                

相關文章
相關標籤/搜索