string baseURL = (((sender as Button).DataContext as ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel).Layer as ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer).Url; // "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer" int id = ((sender as Button).DataContext as ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel).SubLayerID; string url = string.Format("{0}/{1}", baseURL, id); //QueryTask URL when draw is complete
var t = System.Windows.Interactivity.Interaction.GetTriggers(SpatialQueryBtn)[0]; var spatialQueryAction = t.Actions[0] as ESRI.ArcGIS.Client.Actions.SpatialQueryAction; spatialQueryAction.Url = url;
<DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox Content="{Binding Label}" IsChecked="{Binding IsEnabled, Mode=TwoWay}" IsEnabled="{Binding IsInScaleRange}"> </CheckBox> <Button Content="Select"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <esriBehaviors:SpatialQueryAction DrawMode="Rectangle" LayerID="MyGraphicsLayer" Url="http://hq-gis-01/ArcGIS/rest/services/WaterInfrastructure2/MapServer/15" Symbol="{StaticResource GraphicsLayerFillSymbol}" TargetName="MyMap" /> </i:EventTrigger> </i:Interaction.Triggers> </Button> <Slider Maximum="1" Value="{Binding Layer.Opacity, Mode=TwoWay}" Width="50" /> </StackPanel> </DataTemplate>
public class LegendSpatialQueryAction : SpatialQueryAction { protected override void Invoke(object parameter) { var frameWorkElement = AssociatedObject as FrameworkElement; var layerItem = (frameWorkElement == null ? null : frameWorkElement.DataContext as LayerItemViewModel); var dynamicLayer = (layerItem == null ? null : layerItem.Layer as ArcGISDynamicMapServiceLayer); var map = TargetObject as Map; TargetObject = null; // reset in order to send OnTargetChanged if (dynamicLayer != null && map != null) { if (layerItem.LayerType.Contains("MapLayer")) { } // TODO : decide what to do when action is called on map service layer item Url = dynamicLayer.Url + "/" + layerItem.SubLayerID; TargetObject = map; base.Invoke(parameter); } } }
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.