ArcGIS服務器的feature圖層限制

轉載原因:

1. featurelayer在實際編輯過程中出現漏數據的現象,因此重新發布服務時設置了返回最大值10000

2. 用到了mode的參數


今天遇到了esri.layers.FeatureLayer發佈一個宗地圖層,裏面有些數據未顯示,導致數據顯示不全,原來是服務中數據返回參數限制。

ArcGIS的feature圖層(在JavaScript API中爲esri.layers.FeatureLayer),在瀏覽器中進行顯示時是有一定限制的。比如一個名爲traffic的feature圖層,該圖層記錄了該地區所有交通事故的發生地,其feature數量可想而知非常巨大。在瀏覽器中創建該圖層的時候就要爲其選定“模式”。如

var traffic = new esri.layers.FeatureLayer(trafficServiceURL, {
              displayOnPan : true,
              mode : esri.layers.FeatureLayer.MODE_ONDEMAND,
              opacity : 0.8,
              infoTemplate : infoTemplate,
              outFields : [*]
});
第二個參數mode就是模式。ArcGIS JavaScript API提供了三種模式,分別是
  • MODE_ONDEMAND:按需加載feature
  • MODE_SELECTION:初始不加載,只有當客戶端選擇的時候才加載feature
  • MODE_SNAPSHOT:一開始就將“全部”feature從服務器端取回並加載
值得注意的是,MODE_SNAPSHOT中的“全部”是有限制的,在ArcGIS Server 9.3.1中默認是500個,在版本10的時候默認爲1000。這個限制是可以在ArcCatalog中進行修改的。在GIS Servers中連到服務器,並停止該feature圖層的服務,右鍵選擇Service Properties,在Parameters選項卡下可以設置“Maximum Number of Records Returned by Server”。然後重啓圖層服務,並且在REST服務的管理界面清理一下緩存就可以了。
需要注意的是,該參數並非設置得越大越好,它會對地圖在瀏覽器端的加載產生比較大的影響,如果設置的過大,不僅僅會導致加載緩慢,更有可能出現瀏覽器掛掉等不良體驗。對於feature圖層模式的選擇,如果feature數量較小(比如小於Server默認的限制數量),那麼選擇MODE_SNAPSHOT一次性加載最好,並且要在初始化的時候爲圖層添加適當的過濾條件,如setDefinitionExpression和setTimeDefinition對feature屬性、時間進行相應過濾,不至於初始加載階段有過多的feature造成瀏覽器崩潰。
 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章