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 Sub
Ayez 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