Public Sub SelectPoints() Dim pFeature As IFeature Dim pFLayer_point As IFeatureLayer Dim pFLayer_poly As IFeatureLayer Dim pFSelection_point As IFeatureSelection Dim pFSelection_poly As IFeatureSelection Dim pSelectionSet As ISelectionSet Dim pFClass_poly As IFeatureClass Dim pFCursor As IFeatureCursor Dim pResult As IFeatureCursor Dim pResFeat As IFeature Dim pSpatialFilter As ISpatialFilter Dim pGeometry As IGeometry Dim pMxDocument As IMxDocument Dim pActiveView As IActiveView Dim pmap As IMap Dim pTOC As IContentsView Set pMxDocument = Application.Document Set pActiveView = pMxDocument.ActiveView Set pmap = pMxDocument.FocusMap Set pFLayer_point = pmap.Layer(0) Set pFLayer_poly = pmap.Layer(1) Set pSpatialFilter = New SpatialFilter Set pFClass_poly = pFLayer_poly.FeatureClass Set pFSelection_poly = pFLayer_poly Set pFCursor = pFClass_poly.Search(Nothing, False) Set pFeature = pFCursor.NextFeature While Not pFeature Is Nothing Set pGeometry = pFeature.Shape With pSpatialFilter Set pSpatialFilter.Geometry = pGeometry .GeometryField = pFClass_poly.ShapeFieldName 'not necessary .SpatialRel = esriSpatialRelContains End With Set pResult = pFLayer_point.Search(pSpatialFilter, False) Set pFSelection_point = pFLayer_point Set pResFeat = pResult.NextFeature Do Until pResFeat Is Nothing pFSelection_point.Add pResFeat Set pResFeat = pResult.NextFeature Loop Set pFeature = pFCursor.NextFeature Wend Set pActiveView = pMxDocument.ActiveView pActiveView.Refresh 'refresh the selection tab of the TOC (item #2) Set pTOC = pMxDocument.ContentsView(2) pTOC.Refresh 0 'not sure why this needs an argument, #s 0-4 provide same result? End Sub
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.