//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}
/>