Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

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

 

Pied de page des forums

Powered by FluxBB