' If buffer spatial reference is GCS and unit is linear, geometry service will do geodesic buffering Dim bufferParams As New ESRI.ArcGIS.Client.Tasks.BufferParameters() With { .BufferSpatialReference = New SpatialReference(4326), .OutSpatialReference = MyMap.SpatialReference, .Unit = LinearUnit.Meter } bufferParams.Distances.Add(0.05) bufferParams.Features.Add(clickGraphic) _geometryService.BufferAsync(bufferParams)
_pointAndBufferGraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayerBuffer"), GraphicsLayer) _resultsGraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayerBufferResults"), GraphicsLayer) '==================================== 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 If featureSet IsNot Nothing AndAlso featureSet.Features.Count > 0 Then For Each feature As Graphic In featureSet.Features Dim selectedFeature As Graphic = featureSet.Features(0) Dim clickGraphic As New Graphic() clickGraphic.Symbol = TryCast(LayoutRoot.Resources("DefaultMarkerSymbol2"), ESRI.ArcGIS.Client.Symbols.Symbol) 'clickGraphic.Geometry = feature.Geometry clickGraphic.Geometry = selectedFeature.Geometry
Private Sub QueryTask_ExecuteCompletedBuffer1(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.QueryEventArgs) 'Private Sub QueryTask_ExecuteCompletedBuffer2(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.GraphicsEventArgs) _geometryService = New GeometryService("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer") AddHandler _geometryService.BufferCompleted, AddressOf GeometryService_BufferCompleted2 AddHandler _geometryService.Failed, AddressOf GeometryService_Failed2 _queryTask = New QueryTask("http://gis.logis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/1") AddHandler _queryTask.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedBuffer2 AddHandler _queryTask.Failed, AddressOf QueryTask_Failed2 _pointAndBufferGraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayerBuffer"), GraphicsLayer) _resultsGraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayerBufferResults"), GraphicsLayer) 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 If featureSet IsNot Nothing AndAlso featureSet.Features.Count > 0 Then For Each feature As Graphic In featureSet.Features Dim clickGraphic As New Graphic() clickGraphic.Symbol = TryCast(LayoutRoot.Resources("DefaultMarkerSymbol2"), ESRI.ArcGIS.Client.Symbols.Symbol) clickGraphic.Geometry = feature.Geometry ' Input spatial reference for buffer operation defined by first feature of input geometry array clickGraphic.Geometry.SpatialReference = MyMap.SpatialReference _pointAndBufferGraphicsLayer.ClearGraphics() _resultsGraphicsLayer.ClearGraphics() clickGraphic.SetZIndex(2) _pointAndBufferGraphicsLayer.Graphics.Add(clickGraphic) ' If buffer spatial reference is GCS and unit is linear, geometry service will do geodesic buffering Dim bufferParams As New ESRI.ArcGIS.Client.Tasks.BufferParameters() With { .BufferSpatialReference = New SpatialReference(4326), .OutSpatialReference = MyMap.SpatialReference, .Unit = LinearUnit.Meter } bufferParams.Distances.Add(4000) bufferParams.Features.Add(clickGraphic) _geometryService.BufferAsync(bufferParams) Next feature End If End Sub
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.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedSpatialQuery AddHandler queryTask.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedBuffer2 AddHandler queryTask.Failed, AddressOf QueryTaskFindPID_FailedSearch
Private Sub QueryTask_ExecuteCompletedBuffer2(ByVal sender As Object, ByVal args As ESRI.ArcGIS.Client.Tasks.QueryEventArgs) ' BUFFER _geometryService = New GeometryService("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer") AddHandler _geometryService.BufferCompleted, AddressOf GeometryService_BufferCompleted AddHandler _geometryService.Failed, AddressOf GeometryService_Failed _queryTask = New QueryTask("http://gis.logis.org/arcgis/rest/services/MG_Test_WGS84/MapServer/1") AddHandler _queryTask.ExecuteCompleted, AddressOf QueryTask_ExecuteCompletedBuffer AddHandler _queryTask.Failed, AddressOf QueryTask_Failed _pointAndBufferGraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayerBuffer"), GraphicsLayer) _resultsGraphicsLayer = TryCast(MyMap.Layers("MyGraphicsLayerBufferResults"), GraphicsLayer) Dim clickGraphic As New Graphic() clickGraphic.Symbol = TryCast(LayoutRoot.Resources("DefaultMarkerSymbol2"), ESRI.ArcGIS.Client.Symbols.Symbol) clickGraphic.Geometry = e.MapPoint ' Input spatial reference for buffer operation defined by first feature of input geometry array clickGraphic.Geometry.SpatialReference = MyMap.SpatialReference _pointAndBufferGraphicsLayer.ClearGraphics() _resultsGraphicsLayer.ClearGraphics() clickGraphic.SetZIndex(2) _pointAndBufferGraphicsLayer.Graphics.Add(clickGraphic) ' If buffer spatial reference is GCS and unit is linear, geometry service will do geodesic buffering Dim bufferParams As New ESRI.ArcGIS.Client.Tasks.BufferParameters() With { .BufferSpatialReference = New SpatialReference(4326), .OutSpatialReference = MyMap.SpatialReference, .Unit = LinearUnit.Meter } bufferParams.Distances.Add(4000) bufferParams.Features.Add(clickGraphic) _geometryService.BufferAsync(bufferParams) 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
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
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
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.GraphicsLayer~SelectedGraphics.html(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 '' 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
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.