<esri:ArcGISTiledMapServiceLayer ID="BaseLayer" Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer" Initialized="ArcGISTiledMapServiceLayer_Initialized" /> <esri:GraphicsLayer ID="MySelectionGraphicsLayer" />
<RadioButton Content="Street Base Topo" IsChecked="True" ToolTipService.ToolTip="World Topo Base Map" GroupName="BaseLayer" Margin="0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerUrlAction TargetName="Map" LayerID="BaseLayer" Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Imagery2" GroupName="BaseLayer" ToolTipService.ToolTip="ImageService2" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerUrlAction TargetName="Map" LayerID="BaseLayer" Url="ImageService2r" /> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Imagery1" ToolTipService.ToolTip="Imagery Map1" GroupName="BaseLayer" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerUrlAction TargetName="Map" LayerID="BaseLayer" Url="ImageService"/> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton>
You cannot use the SetLayerUrl action for this.
Instead add 3 layers, one for each baselayer. Use the toggle layer visibility action instead for turning on/off layers when the radio buttons are checked.
<!-- Map --> <Grid x:Name="MapDisplayGrid" Margin="0" > <Border x:Name="MapBorder" Margin="0" BorderBrush="#FF666666" BorderThickness="1" > <Grid x:Name="MapGrid" RenderTransformOrigin="0.5,0.5"> <Grid.Projection> <PlaneProjection x:Name="mapPlaneProjection" RotationX="0" /> </Grid.Projection> <esri:Map x:Name="Map" Background="White" Extent="-130,10,-70,60" Loaded="Map_Loaded" > <i:Interaction.Triggers> <i:EventTrigger EventName="MouseEnter"> <ei:ChangePropertyAction TargetName="myMenuItems" PropertyName="Visibility"> <ei:ChangePropertyAction.Value> <Visibility>Collapsed</Visibility> </ei:ChangePropertyAction.Value> </ei:ChangePropertyAction> </i:EventTrigger> </i:Interaction.Triggers> <esri:ArcGISTiledMapServiceLayer ID="BaseLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" Initialized="ArcGISTiledMapServiceLayer_Initialized" /> <esri:GraphicsLayer ID="MySelectionGraphicsLayer" /> <esri:ArcGISImageServiceLayer ID="ImageLayer" Url="http://imaps.dfg.ca.gov/ArcGIS/rest/services/Base_Remote_Sensing/NAIP_2009/ImageServer" /> <esri:ArcGISImageServiceLayer ID="ImageLayer2" Url="http://imaps.dfg.ca.gov/ArcGIS/rest/services/Base_Remote_Sensing/NAIP_2005/ImageServer" /> </esri:Map> <Rectangle Width="2" Height="10" Fill="Black" Opacity="0.75" HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="False" /> <Rectangle Height="2" Width="10" Fill="Black" Opacity="0.75" HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="False" /> </Grid> </Border>
<!-- Map Style --> <Button Style="{StaticResource RibbonButton}" Margin="5,0,5,0" Cursor="Hand" ToolTipService.ToolTip="Toggle Map Rotation" VerticalAlignment="Top" HorizontalAlignment="Center" Padding="5,10,5,10" > <Grid HorizontalAlignment="Center" Margin="0,-10,0,0"> <StackPanel Orientation="Horizontal" Margin="5,14,5,0" HorizontalAlignment="Center" VerticalAlignment="Center" Effect="{StaticResource miniDropShadow}" > <RadioButton Content="Streets" IsChecked="True" ToolTipService.ToolTip="Worldwide Street Map" GroupName="BaseLayer" Margin="0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerUrlAction TargetName="Map" LayerID="BaseLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Topo" GroupName="ImageLayer" ToolTipService.ToolTip="United States Topographic Map" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:ToggleVisibilityAction TargetName="Map" LayerID="ImageLayer" /> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Imagery" ToolTipService.ToolTip="Worldwide Satellite Imagery Map" GroupName="ImageLayer2" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:ToggleVisibilityAction TargetName="Map" LayerID="ImageLayer2" /> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> </StackPanel>
<actions:ToggleVisibilityAction TargetName="Map" LayerID="ImageLayer2" />
<CheckBox Content="Imagery" ToolTipService.ToolTip="Worldwide Satellite Imagery Map" Margin="5,0,0,0" FontSize="11" IsChecked="{Binding Layers[ImageLayer2].Visible, ElementName=Map, Mode=TwoWay}" />
namespace ESRI.ArcGIS.SilverlightMapApp.Actions { public class SetLayerVisibilityAction : TargetedTriggerAction<Map> { /// <summary> /// Invokes the action. /// </summary> /// <param name="parameter">The parameter to the action. If the Action does not require a parameter, the parameter may be set to a null reference.</param> protected override void Invoke(object parameter) { if (!string.IsNullOrEmpty(LayerID)) { Layer l = Target.Layers[LayerID]; l.Visible = Visible; } } /// <summary> /// Gets or sets the ID of layer to work with. /// </summary> /// <value>The layer ID.</value> public string LayerID { get { return (string)GetValue(LayerIDProperty); } set { SetValue(LayerIDProperty, value); } } /// <summary> /// Identifies the <see cref="LayerID"/> dependency property. /// </summary> public static readonly DependencyProperty LayerIDProperty = DependencyProperty.Register("LayerID", typeof(string), typeof(SetLayerVisibilityAction), null); /// <summary> /// Gets or sets the visibility of the layer. /// </summary> /// <value>The layer ID.</value> public bool Visible { get { return (bool)GetValue(VisibleProperty); } set { SetValue(VisibleProperty, value); } } /// <summary> /// Identifies the <see cref="Visible"/> dependency property. /// </summary> public static readonly DependencyProperty VisibleProperty = DependencyProperty.Register("Visible", typeof(bool), typeof(SetLayerVisibilityAction), null); } }
<i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="BaseLayer" Visible="False"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer1" Visible="False"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer2" Visible="True"/> </i:EventTrigger> </i:Interaction.Triggers>
<RadioButton Content="Streets" IsChecked="True" ToolTipService.ToolTip="Worldwide Street Map" GroupName="BaseLayer" Margin="0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="BaseLayer" Visible="False"/> <!--actions:SetLayerUrlAction TargetName="Map" LayerID="BaseLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/--> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Topo" GroupName="BaseLayer" ToolTipService.ToolTip="United States Topographic Map" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer1" Visible="False"/> <!--actions:SetLayerUrlAction TargetName="Map" LayerID="BaseLayer" Url="http://services.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer"/--> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Imagery" ToolTipService.ToolTip="Worldwide Satellite Imagery Map" GroupName="BaseLayer" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer2" Visible="True"/> <!--actions:SetLayerUrlAction TargetName="Map" LayerID="BaseLayer" Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer"/--> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton>
<esri:Map x:Name="Map" Background="White" Extent="-130,10,-70,60" Loaded="Map_Loaded" > <i:Interaction.Triggers> <i:EventTrigger EventName="MouseEnter"> <ei:ChangePropertyAction TargetName="myMenuItems" PropertyName="Visibility"> <ei:ChangePropertyAction.Value> <Visibility>Collapsed</Visibility> </ei:ChangePropertyAction.Value> </ei:ChangePropertyAction> </i:EventTrigger> </i:Interaction.Triggers> <esri:ArcGISTiledMapServiceLayer ID="BaseLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" Initialized="ArcGISTiledMapServiceLayer_Initialized" /> <esri:GraphicsLayer ID="MySelectionGraphicsLayer" /> <esri:ArcGISTiledMapServiceLayer ID="ImageLayer2" Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer" /> <esri:ArcGISTiledMapServiceLayer ID="ImageLayer" Url="http://services.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer" /> </esri:Map>
<RadioButton Content="Streets" IsChecked="True" ToolTipService.ToolTip="Worldwide Street Map" GroupName="BaseLayer" Margin="0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="BaseLayer" Visible="True"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer" Visible="False"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer2" Visible="False"/> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Topo" GroupName="BaseLayer" ToolTipService.ToolTip="United States Topographic Map" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="BaseLayer" Visible="False"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer" Visible="True"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer2" Visible="False"/> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton> <RadioButton Content="Imagery" ToolTipService.ToolTip="Worldwide Satellite Imagery Map" GroupName="BaseLayer" Margin="5,0,0,0" FontSize="11" > <i:Interaction.Triggers> <i:EventTrigger EventName="Checked"> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="BaseLayer" Visible="False"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer" Visible="False"/> <actions:SetLayerVisibilityAction TargetName="Map" LayerID="ImageLayer2" Visible="True"/> </i:EventTrigger> </i:Interaction.Triggers> </RadioButton>
<esri:ArcGISTiledMapServiceLayer ID="BaseLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" Initialized="ArcGISTiledMapServiceLayer_Initialized" /> <esri:GraphicsLayer ID="MySelectionGraphicsLayer" /> <esri:ArcGISTiledMapServiceLayer ID="ImageLayer2" Visible="False" Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer" /> <esri:ArcGISTiledMapServiceLayer ID="ImageLayer" Visible="False" Url="http://services.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer" />