天天看點

ArcGIS圖層和要素的過濾顯示

arcgis可以設定動态地圖服務(arcgisdynamicmapservicelayer)顯示哪些圖層,也可以設定每個圖層根據某個屬性字段的某些條件來進行過濾顯示。

1、設定顯示的圖層

主要是通過arcgisdynamicmapservicelayer的visiblelayers屬性來設定或得到目前顯示的圖層,c#代碼如下:

代碼中map1和textblock_visiblelayers是已經定義好的地圖和textblock控件。

ArcGIS圖層和要素的過濾顯示
ArcGIS圖層和要素的過濾顯示

2、設定圖層根據字段條件過濾顯示

如果不全部顯示一個圖層的所有要素,而是根據某些條件來“過濾顯示”,則可以通過設定layerdefinition來實作。

layerdefinition的設定可以通過xaml代碼實作:

ArcGIS圖層和要素的過濾顯示
ArcGIS圖層和要素的過濾顯示

也可以通過代碼來實作,c#代碼如下:

ArcGIS圖層和要素的過濾顯示
ArcGIS圖層和要素的過濾顯示

上面arcgisdynamicmapservicelayer_initialized(object sender, system.eventargs e)函數是訂閱到arcgisdynamicmapservicelayer.initialized的,也就是在圖層加載的時候就設定了“過濾”條件,如果要在後期在某個響應事件中動态的重新整理地圖,需要在設定layerdefinition後,調用arcgisdynamicmapservicelayer.refresh()函數來重新整理地圖才能看到效果。

參考:

<a href="http://help.arcgis.com/en/webapi/silverlight/apiref/esri.arcgis.client~esri.arcgis.client.arcgisdynamicmapservicelayer~visiblelayers.html">http://help.arcgis.com/en/webapi/silverlight/apiref/esri.arcgis.client~esri.arcgis.client.arcgisdynamicmapservicelayer~visiblelayers.html</a>

<a href="http://help.arcgis.com/en/webapi/silverlight/apiref/esri.arcgis.client~esri.arcgis.client.arcgisdynamicmapservicelayer~layerdefinitions.html">http://help.arcgis.com/en/webapi/silverlight/apiref/esri.arcgis.client~esri.arcgis.client.arcgisdynamicmapservicelayer~layerdefinitions.html</a>

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

http://www.cnblogs.com/luxiaoxun/p/3307466.html

繼續閱讀