Pages: 1
- Sujet précédent - [ArcGIS 9.x] [VBA] Requête spatiale avec sélection préalable - Sujet suivant
#1 Tue 07 October 2008 11:49
- Fabien.Krzewinski
- Participant occasionnel
- Date d'inscription: 19 Aug 2008
- Messages: 18
[ArcGIS 9.x] [VBA] Requête spatiale avec sélection préalable
Bonjour à tous,
J'aimerais pouvoir programmer en VBA une requête spatiale en ayant au préalable sélectionné des éléments (par une requête d'attribut). J'ai joint l'image de l'interface depuis ArcMap de ce que j'aimerai créer.
Si quelqu'un avait un exemple concret, ça m'aiderait beaucoup !
Merci !
Fabien
Hors ligne
#2 Tue 07 October 2008 18:58
Re: [ArcGIS 9.x] [VBA] Requête spatiale avec sélection préalable
C'est http://georezo.net/forum/viewtopic.php?id=56320 ou c'est différent ?
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#3 Wed 08 October 2008 12:01
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: [ArcGIS 9.x] [VBA] Requête spatiale avec sélection préalable
Bonjour,
voici un bout de code qui fonctionne chez moi, à toi de l'adapter :
Code:
Option Explicit
Sub test()
Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pMap As IMap
Set pMap = pMxDoc.FocusMap
Dim pLayer_Point As ILayer
Set pLayer_Point = pMap.Layer(0)
Dim pLayer_Polygon As ILayer
Set pLayer_Polygon = pMap.Layer(1)
Dim pFL_Point As IFeatureLayer
Set pFL_Point = pLayer_Point
Dim pFL_Polygon As IFeatureLayer
Set pFL_Polygon = pLayer_Polygon
Dim pQueryFilter As IQueryFilter
Set pQueryFilter = New QueryFilter
pQueryFilter.WhereClause = "CODE_DEPT ='77' OR CODE_DEPT='51'"
Dim pPolyFCursor As IFeatureCursor
Set pPolyFCursor = pFL_Polygon.FeatureClass.Search(pQueryFilter, True)
Dim pFSel As IFeatureSelection
Set pFSel = pFL_Polygon
Dim pFeature As IFeature
Set pFeature = pPolyFCursor.NextFeature
Dim pSFilter As ISpatialFilter
Set pSFilter = New SpatialFilter
While Not pFeature Is Nothing
Set pSFilter.Geometry = pFeature.Shape
pSFilter.SpatialRel = esriSpatialRelIntersects
Dim pPointCursor As IFeatureCursor
Set pPointCursor = pFL_Point.FeatureClass.Search(pSFilter, True)
Dim pSFSel As IFeatureSelection
Set pSFSel = pFL_Point
Dim pSFeature As IFeature
Set pSFeature = pPointCursor.NextFeature
While Not pSFeature Is Nothing
pSFSel.Add pSFeature
Set pSFeature = pPointCursor.NextFeature
Wend
pFSel.Add pFeature
Set pFeature = pPolyFCursor.NextFeature
Wend
pMxDoc.ActiveView.Refresh
End SubAyez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
Pages: 1
- Sujet précédent - [ArcGIS 9.x] [VBA] Requête spatiale avec sélection préalable - Sujet suivant


