Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
#1 Thu 23 December 2004 09:46
- Atilio FRANCOIS
- Invité
AV8 Selectionner par entites par programme
ArcGis ArcView 8.3
J'essaye de realiser une selection spatiale a l'interieur d'un programme VB.
J'ai trouve comment faire l'equivalent de selectionner par attributs
(QueryFilter) et de selection par elements graphiques (SelectbyShape),
mais je n'arrive pas a trouver le mecanisme pour faire l'equivalent de
selectionner par entites .
Si quelqu'un a une piste...
Merci d'avance
Atilio FRANCOIS
#2 Thu 23 December 2004 09:46
- MEAR Laurent
- Invité
Re: AV8 Selectionner par entites par programme
Bonjour,
Voici une fonction qui fait un croisement spatial entre une couche et un element d'une autre couche.
Code:
Private Sub Intersect(ByVal pOverlayFClass As IFeatureClass, ByVal pIntersectFClass As IFeatureClass, ByVal pIntersectFeature As IFeature) ' pOverlayFClass : a initialiser avec la couche de base ' pIntersectFClass : a initialiser avec la couche qui l'intersecte ' pIntersectFeature : l'entite de la couche qui va recouvrir l'autre (un polygone le plus souvent) Dim pSpatialFilter As ISpatialFilter = New SpatialFilter pSpatialFilter.GeometryField = pIntersectFClass.ShapeFieldName pSpatialFilter.Geometry = pIntersectFeature.Shape pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects Dim pOverlayFCursor As IFeatureCursor = pOverlayFClass.Search(pSpatialFilter, False) 'croisement spatial ' parcourir les entites intersectees Dim pOverlayFeature As IFeature = pOverlayFCursor.NextFeature While Not pOverlayFeature Is Nothing ' Mettre ici le traitement a faire pour chaque entite pOverlayFeature = pOverlayFCursor.NextFeature End While End Sub
Laurent