Select to view content in your preferred language

select points inside multiple polygons

1835
0
04-25-2013 03:08 AM
MohamedAl_Jishi
Deactivated User
Hi

I have two layers in my map. The first layer is points, and the second layer is polygons

I want to select points that is inside the selected polygons based on attributes

I can use querytask on polygon using attribute and return the polygon graphics, and then using this graphics with querytask on points using spatial query to return the point inside this polygon. This method works great if I have only one polygon and I want to select the points inside this single polygon, but I cannot use it if I have more than one polygon !!!!

This my code I used it select points.

 Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click

        Dim QueryTask As New QueryTask(PolygonURL)
        AddHandler QueryTask.ExecuteCompleted, AddressOf QueryTask_ExecuteCompleted
        AddHandler QueryTask.Failed, AddressOf QueryTask_Failed

        Dim query As New ESRI.ArcGIS.Client.Tasks.Query
        query.Where = "ZONE_TYPE='URBAN AREA'"
        query.OutSpatialReference = MainMap.SpatialReference
        query.OutFields.Add("*")
        query.ReturnGeometry = True
        QueryTask.ExecuteAsync(query, "GetZoneGeometry")
    End Sub

    Private Sub QueryTask_ExecuteCompleted(sender As Object, e As QueryEventArgs)
        If TryCast(e.UserState, String) = "GetZoneGeometry" Then

            Dim QueryTask As New QueryTask(PointURL)
            AddHandler QueryTask.ExecuteCompleted, AddressOf QueryTask_ExecuteCompleted
            AddHandler QueryTask.Failed, AddressOf QueryTask_Failed

            Dim query As New ESRI.ArcGIS.Client.Tasks.Query
            query.Where = "1=1"
            query.Geometry = e.FeatureSet.Features(0).Geometry ' How to use all geometries ???????
            query.OutSpatialReference = MainMap.SpatialReference
            query.OutFields.Add("*")
            query.ReturnGeometry = True

            QueryTask.ExecuteAsync(query, "SelectPoint")

        ElseIf TryCast(e.UserState, String) = "SelectPoint" Then

            If e.FeatureSet.Features IsNot Nothing AndAlso e.FeatureSet.Features.Count > 0 Then

                '  add points to graphics layer
                ' ...
                ' ...
            Else
                MessageBox.Show("No result found")
            End If

        End If

    End Sub



In this code I want to select all points inside Urban Areas.
0 Kudos
0 Replies