Private Sub ExecutePIDButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
' QUERY NUMBER 1
'Dim queryTask As New QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/" & "Demographics/ESRI_Census_USA/MapServer/5")
Dim queryTask As New QueryTask("http://gis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/8")
AddHandler queryTask.ExecuteCompleted, AddressOf QueryTaskFindPID_ExecuteCompletedSearch
AddHandler queryTask.Failed, AddressOf QueryTaskFindPID_FailedSearch
'' QUERY NUMBER 2
Dim queryTask2 As New QueryTask("http://gis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/2")
AddHandler queryTask2.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedSearch
AddHandler queryTask2.Failed, AddressOf QueryTaskFindPID_FailedSearch
Dim query As New ESRI.ArcGIS.Client.Tasks.Query()
query.OutFields.Add("*")
query.Text = FindPID.Text
query.ReturnGeometry = True
query.OutSpatialReference = MyMap.SpatialReference
queryTask.ExecuteAsync(query)
End Sub
Private Sub QueryTaskFindPID_ExecuteCompletedSearch(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.QueryEventArgs)
Dim featureSet As FeatureSet = args.FeatureSet
' If an item has been selected
Dim graphicsLayer As GraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayerSearch"), GraphicsLayer)
graphicsLayer.ClearGraphics()
''===============================================================================
'' QUERY AND UPDATE THE FIRST RESULT LOCATION
''===============================================================================
If featureSet IsNot Nothing AndAlso featureSet.Features.Count > 0 Then
' Show selected feature attributes in DataGrid
Dim selectedFeature As Graphic = featureSet.Features(0)
IdentifyDetailsDataGrid5.DataContext = selectedFeature.Attributes
' Hightlight selected feature
selectedFeature.Symbol = TryCast(LayoutRoot.Resources("ResultsFillSymbol"), ESRI.ArcGIS.Client.Symbols.Symbol)
graphicsLayer.Graphics.Add(selectedFeature)
' Zoom to selected feature (define expand percentage)
Dim selectedFeatureExtent As ESRI.ArcGIS.Client.Geometry.Envelope = selectedFeature.Geometry.Extent
Dim expandPercentage As Double = 230
Dim widthExpand As Double = selectedFeatureExtent.Width * (expandPercentage / 15)
Dim heightExpand As Double = selectedFeatureExtent.Height * (expandPercentage / 15)
Dim displayExtent As New ESRI.ArcGIS.Client.Geometry.Envelope(selectedFeatureExtent.XMin - (widthExpand / 2), selectedFeatureExtent.YMin - (heightExpand / 2), selectedFeatureExtent.XMax + (widthExpand / 2), selectedFeatureExtent.YMax + (heightExpand / 2))
MyMap.ZoomTo(displayExtent)
' Update the Parcels results panel pane
If IdentifyResultsPanel5.Visibility = Visibility.Collapsed Then
IdentifyResultsPanel5.Visibility = Visibility.Visible
IdentifyGrid5.Height = Double.NaN
IdentifyGrid5.UpdateLayout()
End If
Else
IdentifyResultsPanel5.DataContext = Nothing
IdentifyResultsPanel5.Visibility = Visibility.Collapsed
IdentifyGrid5.Height = Double.NaN
IdentifyGrid5.UpdateLayout()
End If
End Sub
If you will be using FeatureLayer or GraphicsLayer, you can use Editor.Select http://help.arcgis.com/en/webapi/silverlight/samples/start.htm#EditToolsAutoSave or EditorWidget http://help.arcgis.com/en/webapi/silverlight/samples/start.htm#ToolkitEditorWidget. Either solutions will make a selection across different layers of same or different geometries and you can access them through SelectedGraphics property http://help.arcgis.com/en/webapi/silverlight/apiref/ESRI.ArcGIS.Client~ESRI.ArcGIS.Client.GraphicsLa...(available in either FeatureLayer or GraphicsLayer).
Private Sub ExecutePIDButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
' QUERY NUMBER 1
'Dim queryTask As New QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/" & "Demographics/ESRI_Census_USA/MapServer/5")
Dim queryTask As New QueryTask("http://gis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/8")
AddHandler queryTask.ExecuteCompleted, AddressOf QueryTaskFindPID_ExecuteCompletedSearch
AddHandler queryTask.Failed, AddressOf QueryTaskFindPID_FailedSearch
Dim query As New ESRI.ArcGIS.Client.Tasks.Query()
query.OutFields.Add("*")
query.Text = FindPID.Text
query.ReturnGeometry = True
query.OutSpatialReference = MyMap.SpatialReference
queryTask.ExecuteAsync(query)
'' SPATIAL QUERY
Dim queryTaskSpatial As New QueryTask("http://gis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/5")
AddHandler queryTaskSpatial.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedSearch
AddHandler queryTaskSpatial.Failed, AddressOf QueryTask_FailedSearch
' Bind data grid to query results
Dim resultFeaturesBinding As New Binding("LastResult.Features")
resultFeaturesBinding.Source = queryTaskSpatial
QueryDetailsDataGrid.SetBinding(DataGrid.ItemsSourceProperty, resultFeaturesBinding)
Dim querySpatial As New ESRI.ArcGIS.Client.Tasks.Query()
querySpatial.OutFields.Add("*")
querySpatial.Text = QueryComboBox.SelectedItem.ToString()
querySpatial.ReturnGeometry = True
querySpatial.Geometry = args.Geometry
querySpatial.OutSpatialReference = MyMap.SpatialReference
queryTaskSpatial.ExecuteAsync(querySpatial)
End Sub
Private Sub ExecutePIDButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
' QUERY NUMBER 1
'Dim queryTask As New QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/" & "Demographics/ESRI_Census_USA/MapServer/5")
Dim queryTask As New QueryTask("http://gis.logis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/8")
AddHandler queryTask.ExecuteCompleted, AddressOf QueryTaskFindPID_ExecuteCompletedSearch
AddHandler queryTask.Failed, AddressOf QueryTaskFindPID_FailedSearch
'' QUERY NUMBER 2
Dim queryTask2 As New QueryTask("http://gis.logis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/2")
AddHandler queryTask2.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedSearch
AddHandler queryTask2.Failed, AddressOf QueryTaskFindPID_FailedSearch
'' PUSH TO OTEHR METHOD TO DO SPATIAL QUERY
Dim queryTaskSpatialQuery As New QueryTask("http://gis.logis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/2")
AddHandler queryTaskSpatialQuery.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedSpatialQuery
AddHandler queryTaskSpatialQuery.Failed, AddressOf QueryTaskFindPID_FailedSpatialQuery
Dim query As New ESRI.ArcGIS.Client.Tasks.Query()
query.OutFields.Add("*")
query.Text = FindPID.Text
query.ReturnGeometry = True
query.OutSpatialReference = MyMap.SpatialReference
queryTask.ExecuteAsync(query)
End Sub Private Sub QueryTask_ExecuteCompletedSpatialQuery(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.QueryEventArgs)
'' SPATIAL QUERY
Dim queryTaskSpatial As New QueryTask("http://gis.logis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/5")
AddHandler queryTaskSpatial.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedFINALBUFFER
AddHandler queryTaskSpatial.Failed, AddressOf QueryTask_FailedSearch
' Bind data grid to query results
Dim resultFeaturesBinding As New Binding("LastResult.Features")
resultFeaturesBinding.Source = queryTaskSpatial
QueryDetailsDataGrid.SetBinding(DataGrid.ItemsSourceProperty, resultFeaturesBinding)
Dim querySpatial As New ESRI.ArcGIS.Client.Tasks.Query()
querySpatial.OutFields.Add("*")
querySpatial.ReturnGeometry = True
querySpatial.Geometry = args.Geometry
querySpatial.OutSpatialReference = MyMap.SpatialReference
queryTaskSpatial.ExecuteAsync(querySpatial)
End Sub
Private Sub QueryTaskFindPID_FailedSpatialQuery(ByVal sender As Object, ByVal args As TaskFailedEventArgs)
MessageBox.Show("Query failed: " & args.Error.Message)
End Sub
Private Sub QueryTask_ExecuteCompletedFINALBUFFER(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.QueryEventArgs)
Dim featureSet As FeatureSet = args.FeatureSet
If featureSet Is Nothing OrElse featureSet.Features.Count < 1 Then
MessageBox.Show("No features retured from query")
Return
End If
Dim graphicsLayer As GraphicsLayer = TryCast(MyMap.Layers("MySelectionGraphicsLayer"), GraphicsLayer)
If featureSet IsNot Nothing AndAlso featureSet.Features.Count > 0 Then
For Each feature As Graphic In featureSet.Features
feature.Symbol = TryCast(LayoutRoot.Resources("ResultsFillSymbol"), FillSymbol)
graphicsLayer.Graphics.Insert(0, feature)
Next feature
ResultsDisplay.Visibility = Visibility.Visible
End If
End Sub
Private Sub QueryTask_Failed(ByVal sender As Object, ByVal args As TaskFailedEventArgs)
MessageBox.Show("Query failed: " & args.Error.ToString())
End Sub
For Each graphic As Graphic In args.FeatureSet.Features
Dim querySpatial As New ESRI.ArcGIS.Client.Tasks.Query()
querySpatial.OutFields.Add("*")
querySpatial.ReturnGeometry = True
querySpatial.Geometry = graphic.Geometry
querySpatial.OutSpatialReference = MyMap.SpatialReference
queryTaskSpatial.ExecuteAsync(querySpatial)
Exit For
Next