天天看點

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:,如需轉載請自行聯系原作者

繼續閱讀