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); } } }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.