//C# //returns -1 if layer not found private static int GetTargetLayer(Map map, string layerName) { var retVal = -1; var layerCollection = map.Layers; if (layerCollection != null) { //Check only ArcGISDynamicMapServiceLayer with sublayers foreach (var dynamicLayer in layerCollection.OfType<ArcGISDynamicMapServiceLayer>().Select(layer => layer).Where(dynamicLayer => dynamicLayer.Layers != null)) { //Check for the layer name foreach (var layerInfo in dynamicLayer.Layers.Where(layerInfo => layerInfo.Name == layerName)) { //Layer name found, return the ID retVal = layerInfo.ID; break; } } } return retVal; }
Wonderful! But you would have to be a C# guy! No problem. Us VB neanderthals will cope.;)
private static int GetTargetLayer(Map map, string layerName) { var retVal = -1; var layerCollection = map.Layers; if (layerCollection != null) { foreach (var layer in layerCollection) { if (!(layer is ArcGISDynamicMapServiceLayer)) continue; var dynamicLayer = layer as ArcGISDynamicMapServiceLayer; if (dynamicLayer.Layers != null) { foreach (var layerInfo in dynamicLayer.Layers) { if (layerInfo.Name == layerName) { retVal = layerInfo.ID; break; } } } } } return retVal; }
Private Function GetTargetLayer(ByVal Map As Map, ByVal strLayerName As String) As String Try Dim layerCollection As LayerCollection = Map.Layers Dim basePath As String = "http://www.co.missoula.mt.us/ArcGIS/rest/services/Atlas/Atlas/MapServer/" If Not (layerCollection Is Nothing) Then For Each lyr In layerCollection If (TypeOf (lyr) Is ArcGISDynamicMapServiceLayer) Then Dim dynamicServiceLayer As ArcGISDynamicMapServiceLayer = lyr 'Dim layerInfo As New LayerInfo For Each layerInfo In dynamicServiceLayer.Layers If layerInfo.Name = strLayerName Then MessageBox.Show(CStr(layerInfo.ID)) GetTargetLayer = basePath + layerInfo.ID.ToString End If Next End If Next Else GetTargetLayer = "NA" End If Catch ex As Exception GetTargetLayer = "NA" End Try End Function
<esri:FeatureLayer ID="Counties" Visible="False" Url="http://www.testlocation.us/ArcGIS/rest/services/Atlas/Atlas/MapServer/22" /> <esri:FeatureLayer ID="Counties" Visible="False" Url="{Binding testID}" /> <esri:FeatureLayer ID="Counties" Visible="False" Url="http://www.testlocation.us/ArcGIS/rest/services/Atlas/Atlas/MapServer/" + {Binding TestID} />