Public Sub SelectSchoolDistrict() Dim pMxApp As IMxApplication Dim pMap As IMap Dim pMxDoc As IMxDocument Dim pActiveView As IActiveView Dim pEnumFeature As IEnumFeature Dim pFeature As IFeature Set pMxApp = Application Set pMxDoc = Application.Document Set pActiveView = pMxDoc.FocusMap Set pMap = pMxDoc.FocusMap Dim pFeatureCursor As IFeatureCursor Dim pFeatureSelection As IFeatureSelection Dim pSelectionSet As ISelectionSet Set pFeatureSelection = pMxDoc.FocusMap.Layer(1) 'FeatureSelection Set pSelectionSet = pFeatureSelection.SelectionSet m_SetSelectableLayer ("School District") If ThisDocument.g_Model = 2 Then Dim pISDLayer As IFeatureLayer Dim pSearchLayer As ILayer Dim ISDcount As Integer For ISDcount = 0 To pMxDoc.FocusMap.LayerCount - 1 Set pSearchLayer = pMxDoc.FocusMap.Layer(ISDcount) If pSearchLayer.Name = "School Districts" Then Set pISDLayer = pSearchLayer Exit For End If Next Dim pISDfSel As IFeatureSelection Set pISDfSel = pISDLayer Dim pEnumParcelIDs As IEnumIDs Set pEnumParcelIDs = pSelectionSet.IDs Dim pGeoCollParcel As IGeometryCollection Set pGeoCollParcel = New GeometryBag Dim count As Long For count = 1 To pSelectionSet.count pGeoCollParcel.AddGeometry pISDLayer.FeatureClass.GetFeature(pEnumParcelIDs.Next).Shape Next count Dim pISDSpatialFilter As ISpatialFilter Set pISDSpatialFilter = New SpatialFilter With pISDSpatialFilter Set .Geometry = pGeoCollParcel .GeometryField = "Shape" .SpatialRel = esriSpatialRelContains End With pISDfSel.SelectFeatures pISDSpatialFilter, esriSelectionResultNew, False Set gISDSelectionSet = pISDfSel.SelectionSet End If 'End Section to add ISD addresses End Sub
Solved! Go to Solution.
Public Sub SelectSchoolDistrict() Dim pMxApp As IMxApplication Dim pMap As IMap Dim pMxDoc As IMxDocument Dim pActiveView As IActiveView Dim pEnumFeature As IEnumFeature Dim pFeature As IFeature Set pMxApp = Application Set pMxDoc = Application.Document Set pActiveView = pMxDoc.FocusMap Set pMap = pMxDoc.FocusMap ' Get first layer and the selected ID's Dim pFeatureCursor As IFeatureCursor Dim pFeatureSelection As IFeatureSelection Dim pSelectionSet As ISelectionSet Dim pFeatureLayer As IFeatureLayer Set pFeatureLayer = pMxDoc.FocusMap.Layer(0) ' A point layer Set pFeatureSelection = pFeatureLayer Set pSelectionSet = pFeatureSelection.SelectionSet Dim pEnumParcelIDs As IEnumIDs Set pEnumParcelIDs = pSelectionSet.IDs ' Load selected points into geometry bag Dim pGeoColl As IGeometryCollection Set pGeoColl = New GeometryBag Dim pPoint As IPoint Dim id As Long id = pEnumParcelIDs.Next Do While id <> -1 Set pFeature = pFeatureLayer.FeatureClass.GetFeature(id) Set pPoint = pFeature.Shape pGeoColl.AddGeometry pPoint id = pEnumParcelIDs.Next Loop Dim pGeom As IGeometry Set pGeom = pGeoColl ' Get layer Dim pISDLayer As IFeatureLayer Dim ISDcount As Integer For ISDcount = 0 To pMap.LayerCount - 1 Set pISDLayer = pMap.Layer(ISDcount) If pISDLayer.Name = "Display Index" Then ' A polygon layer Exit For End If Next Dim pISDfSel As IFeatureSelection Set pISDfSel = pISDLayer ' Create spatial filter Dim pSpatialFilter As ISpatialFilter Set pSpatialFilter = New SpatialFilter With pSpatialFilter Set .Geometry = pGeom .GeometryField = "SHAPE" .SpatialRel = esriSpatialRelWithin End With ' Do selection and refresh map pISDfSel.SelectFeatures pSpatialFilter, esriSelectionResultNew, False pActiveView.Refresh End Sub
Public Sub SelectSchoolDistrict() Dim pMxApp As IMxApplication Dim pMap As IMap Dim pMxDoc As IMxDocument Dim pActiveView As IActiveView Dim pEnumFeature As IEnumFeature Dim pFeature As IFeature Set pMxApp = Application Set pMxDoc = Application.Document Set pActiveView = pMxDoc.FocusMap Set pMap = pMxDoc.FocusMap ' Get first layer and the selected ID's Dim pFeatureCursor As IFeatureCursor Dim pFeatureSelection As IFeatureSelection Dim pSelectionSet As ISelectionSet Dim pFeatureLayer As IFeatureLayer Set pFeatureLayer = pMxDoc.FocusMap.Layer(0) ' A point layer Set pFeatureSelection = pFeatureLayer Set pSelectionSet = pFeatureSelection.SelectionSet Dim pEnumParcelIDs As IEnumIDs Set pEnumParcelIDs = pSelectionSet.IDs ' Load selected points into geometry bag Dim pGeoColl As IGeometryCollection Set pGeoColl = New GeometryBag Dim pPoint As IPoint Dim id As Long id = pEnumParcelIDs.Next Do While id <> -1 Set pFeature = pFeatureLayer.FeatureClass.GetFeature(id) Set pPoint = pFeature.Shape pGeoColl.AddGeometry pPoint id = pEnumParcelIDs.Next Loop Dim pGeom As IGeometry Set pGeom = pGeoColl ' Get layer Dim pISDLayer As IFeatureLayer Dim ISDcount As Integer For ISDcount = 0 To pMap.LayerCount - 1 Set pISDLayer = pMap.Layer(ISDcount) If pISDLayer.Name = "Display Index" Then ' A polygon layer Exit For End If Next Dim pISDfSel As IFeatureSelection Set pISDfSel = pISDLayer ' Create spatial filter Dim pSpatialFilter As ISpatialFilter Set pSpatialFilter = New SpatialFilter With pSpatialFilter Set .Geometry = pGeom .GeometryField = "SHAPE" .SpatialRel = esriSpatialRelWithin End With ' Do selection and refresh map pISDfSel.SelectFeatures pSpatialFilter, esriSelectionResultNew, False pActiveView.Refresh End Sub