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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 23 February 2009 08:30

jkranklader
Participant occasionnel
Date d'inscription: 16 Feb 2009
Messages: 15

[argis 9.3] Passer d'une selection unique à un multipoints.

Bonjour,

J'écris ce sujet pour savoir comment passer de la selection d'un point ("current location") à un multipoints en vba arcgis, voici le code :

Code:

Private Sub Etude_auto_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long)
  
    Dim pMxDoc As IMxDocument
    Set pMxDoc = ThisDocument

    Dim pmap As IMap
    Set pmap = pMxDoc.FocusMap

    Dim ptable As ITable
    Set ptable = pmap.Layer(0)

    Dim pRline As IRubberBand
    Set pRline = New RubberLine

    Dim pLine As IGeometry
    Set pLine = pRline.TrackNew(pMxDoc.ActiveView.ScreenDisplay, Nothing)

    Dim pPoints As IPointCollection
    Set pPoints = pLine

    Dim psfilter As ISpatialFilter
    Set psfilter = New SpatialFilter
    Set psfilter.Geometry = pMxDoc.[b]CurrentLocation[/b]
    psfilter.SpatialRel = esriSpatialRelWithin

    Dim pf_selec As IFeatureSelection
    Set pf_selec = ptable

    pf_selec.SelectFeatures psfilter, esriSelectionResultNew, False
    pMxDoc.ActiveView.Refresh

    Dim p_selset As ISelectionSet
    Set p_selset = pf_selec.SelectionSet

    Dim pcursor As ICursor
    Set pcursor = ptable.Search(psfilter, False)

    Dim prow As IRow
    Set prow = pcursor.NextRow

    Dim msg As String
    msg = ""

    Dim num_champ As Byte
    num_champ = ptable.FindField("INSEE")

    If prow Is Nothing Then
        msg = "Cliquez sur une commune svp!!"
    Else
        Do Until prow Is Nothing
            msg = prow.Value(num_champ)
            Set prow = pcursor.NextRow
        Loop   End If

MsgBox msg, , "selection"

End Sub

En résumé, je trace une ligne en tracé relatif, toutes les communes où se trouve un sommet de la polyligne doivent être sélectionnées. mais le currentlocation (en gras) ne me sélectionne que la commune de point de départ.

Est-il possible de changer le current location par une autre fonction pour que toute les communes soient sélectionnées où faut-il que je change de méthode (si oui quoi faire?)?

merci d'avance

jkranklader

Hors ligne

 

Pied de page des forums

Powered by FluxBB