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 21 July 2008 17:36

Fos4
Participant occasionnel
Date d'inscription: 7 May 2008
Messages: 12

[ArcMap 8.3] aligner symbole sur polyligne

Bonjour,

je souhaiterais placer des symboles représentant des sens d'écoulement sur des polylignes formant
un réseau de canalisations.

J'arrive à placer un symbole flèche au milieu des polylignes, mais je n'arrive pas à l'aligner sur celles-ci.

Comment peut on s'y prendre pour créer une symbolique linéaire, qui placerait une fléche au milieu
de chaque polyligne. Les symbolique linéaires existantes permettent seulement de placer un symbole en bout de polyligne
et cela cache le regard suivant ....

Merci d'avance pour votre aide

Hors ligne

 

#2 Mon 21 July 2008 17:48

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: [ArcMap 8.3] aligner symbole sur polyligne

En créant un symbole multi-couches peut être que tu pourrais trouver ton bonheur.


Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#3 Mon 21 July 2008 18:11

Fos4
Participant occasionnel
Date d'inscription: 7 May 2008
Messages: 12

Re: [ArcMap 8.3] aligner symbole sur polyligne

Malheureusement, les symboles multi-couches sont apparemment essentiellement là pour
habiller l'origine et la fin des polylignes, ce qui ne peut m'aider, en tatonnant il est impossible d'arriver
à un habillage correct dés lors que l'on joue sur les espacement / taille décalage et autres ....

Cela me semble étrange qu'un SIG ne permette pas de dessiner des sens d'écoulement
convenablement ...

Hors ligne

 

#4 Mon 21 July 2008 19:11

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: [ArcMap 8.3] aligner symbole sur polyligne

Salut

J'ai réussi à faire des polylignes avec des flèches sur la ligne sans qu'il y en ait au début et à la fin et de la bonne orientation.  Je crois que Tnarbiv a la solution.

Daniel


De retour à la géomatique

Hors ligne

 

#5 Mon 21 July 2008 19:59

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: [ArcMap 8.3] aligner symbole sur polyligne

Daniel, pourrais-tu donner ta méthode ?

Car j'ai trouvé aussi une manière de faire des lignes avec des flèches sur la ligne mais pas aux extrémités, mais je trouve ça un peu compliqué : Je crée un symbole de flèche composite, dont un symbole invisible décalé du décalage que je veux avoir aux extrémités.


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#6 Mon 21 July 2008 20:28

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: [ArcMap 8.3] aligner symbole sur polyligne

Bonjour

La recette du bonheur!!!!!  Lorsque l'on va dans les propriétés d'une couche ligne, SYMBOLOGIE - PROPRIÉTÉS, on ajoute une ligne avec le +.  On clique sur cette nouvelle ligne, et on choisi Marker line symbol dans le type en haut.  On clique sur symbole, propriétés, et en haut dans le type, on choisi arrow marker.  On choisi la grosseur, et les autres paramètres de la flèche.  On clique 2 fois sur OK pour revenir aux paramêtres de Marker Line Symbol.  Dans l'onglet TEMPLATE, on déplace sur la ligne le point d'arrivée un peu plus loin et on déplace aussi le point de départ.  La flèche ne commencera donc pas au début et ne terminera pas à la fin.  Le tout dépend de l'échelle à laquelle on travail.  Mais pour un réseau urbain, je crois que ça devrait bien fonctionner.

Faite une tentative et tenez-moi au courant.

Daniel

Dernière modification par Daniel (Mon 21 July 2008 20:35)


De retour à la géomatique

Hors ligne

 

#7 Tue 22 July 2008 09:10

ancien
Participant actif
Lieu: Hautes-Pyrénées
Date d'inscription: 28 Oct 2006
Messages: 60

Re: [ArcMap 8.3] aligner symbole sur polyligne

Bonjour,

Je peux me tromper mais l'extension arcHydroTools le fait automatiquement, non? (flêches dans le sens de la digitalisation)

Bonne journée


Olivier Billard

Hors ligne

 

#8 Tue 22 July 2008 10:12

Fos4
Participant occasionnel
Date d'inscription: 7 May 2008
Messages: 12

Re: [ArcMap 8.3] aligner symbole sur polyligne

Bonjour,

en réponse Daniel :
la solution proposée marche pas trop mal, peut-être
que je chipote un peu aussi, enfin le problème vient que mes polylignes
sont de longueur trés inégale donc trouver une configuration de symbolique
en jouant sur les espacement et autre de la symbolique ponctuelle pour trouver
un arrangement qui convienne à toutes mes polylignes est trés hazardeux, le problème d'une
fléche "jointant" un regard et me masquant partiellement celui-ci, survient tôt ou tard.
Enfin cela donne déjà un rendu plus compréhensible qu'un réseau sans sens d'écoulement,
c'est déjà bien.

L'ancien :
je vais tacher de me renseigner sur le module indiqué, il me semble tout
désigné dans le cadre de mon travail.

Solution envisageable :
1- placer des points au milieu des polylignes
2- récupérer les angles des polylignes
3- insérer un symbole type fléche avec pour coordonnées le milieu et l'angle de la polyligne
4- Problèmes
             - je ne sais pas récupérer l'angle des polylignes
             - je ne sais pas insérer de symbole en fonction d'un angle

Merci à tous de vos contributions, je vous tiens au courant de l'avancement de mes recherches.

Hors ligne

 

#9 Tue 22 July 2008 14:38

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: [ArcMap 8.3] aligner symbole sur polyligne

Bonjour
Pour ce qui est de récupérer l'angle d'une polyligne, là je ne peux pas t'aider.  Cependant, si tu fais une recherche sur le forum, peut-être que tu pourras trouver une réponse.  Pour ce qui est d'insérer un symbole en fonction d'un angle, là c'est plus facile.  Il suffit de mettre, dans la base de données du point (qui est probablement un shape), une colonne ANGLE et d'insérer l'angle que le point devra prendre.  Dans les propriétés du symbole, dans l'onglet symbologie,, il y a un bouton avancé (advanced) et là il y a rotation.  Tu choisi à partir de la colonne angle et le tour est joué.  Important, bien comprendre comme ArcMAP place les angles.  Je crois que tu peux utiliser deux types: géographique et arithmétique.  Il y a une différence entre les deux de 90°.

Daniel


De retour à la géomatique

Hors ligne

 

#10 Tue 22 July 2008 18:47

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: [ArcMap 8.3] aligner symbole sur polyligne

Daniel, il y a plus qu'une différence de 90°, il y a aussi le sens qui est différent. Ces mathématiciens font tout pas comme les autres, ils lisent un angle à partir de 15H (l'heure de la sieste), et ils remontent le temps (ils ont loupé le déjeuner), alors qu'un angle normal se lit à partir de 12H et vers 16H (le gouter big_smile).

Récupérer l'angle d'une polyligne, je vois mal ce que cela signifie, à moins qu'aucune polyligne ne soit vraiment tordue, là il suffit de s'amuser avec les coordonnées des points extrêmes.

Par contre, si tu as des longueurs différentes, la solution est d'avoir une symbologie par ordre de grandeur des longueurs. Ça s'appelle une symbologie par valeur. Si le champ longueur n'est pas disponible, tu peux toujours le créer et le remplir automatiquement.


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

#11 Tue 22 July 2008 20:15

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: [ArcMap 8.3] aligner symbole sur polyligne

Jérôme C a écrit:

Daniel, il y a plus qu'une différence de 90°, il y a aussi le sens qui est différent. Ces mathématiciens font tout pas comme les autres, ils lisent un angle à partir de 15H (l'heure de la sieste), et ils remontent le temps (ils ont loupé le déjeuner), alors qu'un angle normal se lit à partir de 12H et vers 16H (le gouter big_smile).

Récupérer l'angle d'une polyligne, je vois mal ce que cela signifie, à moins qu'aucune polyligne ne soit vraiment tordue, là il suffit de s'amuser avec les coordonnées des points extrêmes.

Par contre, si tu as des longueurs différentes, la solution est d'avoir une symbologie par ordre de grandeur des longueurs. Ça s'appelle une symbologie par valeur. Si le champ longueur n'est pas disponible, tu peux toujours le créer et le remplir automatiquement.


Bonjour

J'aime bien l'analogie des heures de repas!!!  smile
Pour ce qui est de l'angle, j'avais en tête des lignes simples, avec une paire de coordonnées au départ et une paire à l'arrivée.  Mais oui, Jérôme a raison.  À partir de FME, nous avons fait une procédure qui est capable de trouver l'orientation en degré d'un polygone.  Ça doit être assez facile de transformer le calcul pour une polyligne mais dans ArcGIS.....hmm

Je continue à vous suivre pour en savoir plus...

Daniel


De retour à la géomatique

Hors ligne

 

#12 Wed 23 July 2008 09:45

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: [ArcMap 8.3] aligner symbole sur polyligne

j'ai trouvé ça sur http://arcscripts.esri.com/details.asp?dbid=14234


Code:

'This script will select the first layer in the TOC, if it is a polyline and has at least
'one line/record selected, it will add two fields called AriAngle (Arithmetic Rotation aka Polar)
'and GeoAngle (Geographic Rotation aka North Azimuth) and populate the fields with angles for each
'selected line/record based upon its from to direction.

'CREATED BY:  James Zazula, GIS Analyst, City of Barrie, Barrie, Ontario, Canada
'CREATED BY:  James Zazula, GIS Consultant, GIS North, Barrie, Ontario, Canada
'Assistance provided by Kirsten Lowerey, Planning Technician, City of Barrie, Ontario, Canada
'If you would like to make improvements to the script, feel free to do so and send me the new script :)
'Created in ArcGIS 8.3, not tested in 9.x

'Portion of script based upon ESRI ILINE Example
'Portion of script based upon DOUGLAS R. GUESS - LANCASTER COUNTY ASSESSOR/REGISTER OF DEEDS OFFICE

'NOTES:
'A least one polyline must be selected
'The script will only work if the polyline layer is the first layer on the TOC
'To calculate the value of PI = 4 * Atn(1)
'To convert Angles to Radians (Radians = Angle in Degrees * (PI/180))
'To convert Radians to Angles (Angles in Degrees = Radians * (180/PI))

'      Calculated Angle          Arithmetic Angle         Geographic Angle
'             90                       90                       0
'             |                         |                       |
'             |                         |                       |
'    180      |                         |                       |
'   -180 ----------- 0          180 ---------- 0       270 ----------- 90
'             |                         |                       |
'             |                         |                       |
'             |                         |                       |
'            -90                       270                     180

'This script will choose the first layer in the TOC and makes sure that it is a polyline
'This script will make sure at least on polyline/record is selected
'You do not have to be in edit mode for this script to work, just run the macro FindPolylineAngle

Public Sub FindAngle()

Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pMap As IMap
Set pMap = pMxDoc.FocusMap
If pMxDoc.FocusMap.LayerCount = 0 Then
    MsgBox "Must have at least one layer.", vbExclamation
    Exit Sub
End If
Dim pFeatSelection As IFeatureSelection
Set pFeatSelection = pMxDoc.FocusMap.Layer(0)
Dim lCache As Long
lCache = pMxDoc.ActiveView.ScreenCacheID(esriViewGeoSelection, Nothing)
Dim FromPt1 As IPoint, ToPt1 As IPoint
Dim pGeometry1 As IGeometry
Dim pPolyline1 As IPolyline
Dim pFeatureLayer As IFeatureLayer
Set pFeatureLayer = pFeatSelection
Dim pFeatClass As IFeatureClass
Set pFeatClass = pFeatureLayer.FeatureClass
Dim pFeat1 As IFeature
Set pFLayer = pMxDoc.SelectedLayer

If pFeatClass.ShapeType <> esriGeometryPolyline Then
MsgBox "You must have a polyline layer as the first item on the TOC."
    Exit Sub
End If
       
Dim pEnumIDS As IEnumIDs
Set pEnumIDS = pFeatSelection.SelectionSet.IDs
Dim lOID1 As Variant
Dim pLine As ILine
Dim getRadian As Double
Dim getAngle As Integer, iAriAngle As Integer, iGeoAngle As Integer 'Could be changed to double
Dim PI As Double
PI = 4 * Atn(1)
Dim lCount As Long
Dim indexA As Long
Dim indexG As Long
Dim nTotal As Long
nTotal = pFeatSelection.SelectionSet.Count
Dim sTotal As String
Dim pPointFrom As IPoint, pPointTo As IPoint
Set pPointFrom = New Point
Set pPointTo = New Point
Set pLine = New Line


If nTotal = 0 Then
    MsgBox "Please select at least one line"
Else
'Add a new field called AriAngle (Arithmetic Angle)
  indexA = pFeatClass.FindField("ARIANGLE")
  If indexA < 0 Then
    Dim pFieldAri As IFieldEdit
    Set pFieldAri = New Field
    With pFieldAri
      .Type = esriFieldTypeInteger
      .Name = "ARIANGLE"
    End With
    pFeatClass.AddField pFieldAri
  End If
  indexA = pFeatClass.FindField("ARIANGLE")
'Add a new field called GeoAngle (Geographic Angle)
  indexG = pFeatClass.FindField("GEOANGLE")
  If indexG < 0 Then
    Dim pFieldGeo As IFieldEdit
    Set pFieldGeo = New Field
    With pFieldGeo
      .Type = esriFieldTypeInteger
      .Name = "GEOANGLE"
    End With
    pFeatClass.AddField pFieldGeo
  End If
  indexG = pFeatClass.FindField("GEOANGLE")
End If

Do While Not pFeatureLayer Is Nothing
    lOID1 = pEnumIDS.Next
    lCount = lCount + 1
    If lCount > nTotal Then
        sTotal = Str(nTotal)
        If nTotal <> 0 Then
            MsgBox "Script complete" & vbNewLine & Trim(sTotal) & " lines now have angles"
        End If
        Exit Sub
    End If

    Set pFeat1 = pFeatClass.GetFeature(lOID1)
    Set FromPt1 = New Point
    Set ToPt1 = New Point
    Set pGeometry1 = pFeat1.Shape
    Set pPolyline1 = pGeometry1
    pPolyline1.QueryFromPoint FromPt1
    pPolyline1.QueryToPoint ToPt1
    pPointFrom.PutCoords FromPt1.x, FromPt1.y
    pPointTo.PutCoords ToPt1.x, ToPt1.y
    pLine.PutCoords pPointFrom, pPointTo
    getRadian = pLine.Angle
 
'This section will change the polyline to an Arithmetic Rotational Angle (aka Polar)
    If getRadian < 0 Then
        iAriAngle = 360 - (((getRadian * 360) * -1) / (2 * PI))
    Else
        iAriAngle = (getRadian * 360) / (2 * PI)
    End If
    pFeat1.Value(indexA) = iAriAngle
    pFeat1.Store

'This section with change the polyline to a Geographic Rotational Angle (aka North Azimuth)
    getAngle = 45 - (iAriAngle - 45)
    If getAngle < 0 Then
        iGeoAngle = getAngle + 360
    Else
        iGeoAngle = getAngle
    End If
    pFeat1.Value(indexG) = iGeoAngle
    pFeat1.Store
Loop

Errorhandler:
MsgBox Err.Number & "..." & Err.Description
Exit Sub

End Sub

Dernière modification par Tnarbiv (Wed 23 July 2008 10:00)


Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#13 Wed 23 July 2008 10:55

freesnowpetrel
Participant assidu
Lieu: Pretoria, Afrique du Sud
Date d'inscription: 1 Mar 2007
Messages: 222

Re: [ArcMap 8.3] aligner symbole sur polyligne

Bonjour,

Sinon tu dois aussi pouvoir utiliser l'outil "calculate movement parameters" de la barre d'outil "Hawths Analysis Tools" apres avoir convertis tes polylignes en points.
http://www.spatialecology.com/htools/mo … simple.php
Cet outil a pour but de reconstituer les mouvements d'animaux suivis par balises. Il ajoute pour chaque point plusieurs colonnes: distance entre 2 points, angle de rotation, cap, distance totale.
Attention tes points doivent etres classes dans l'ordre correspondant au sens de parcours de ton reseau.

Rodolphe

Hors ligne

 

#14 Mon 28 July 2008 15:58

Fos4
Participant occasionnel
Date d'inscription: 7 May 2008
Messages: 12

Re: [ArcMap 8.3] aligner symbole sur polyligne

Bonjour,

j'ai bien réussi à récupérer l'angle ou plutôt l'orientation de mes polylignes.

Enfait ma solution ne collait pas à mon problème, je suis bon à 180°prés,
La pente n'étant pas orientée toujours dans le même sens, la symbolique suit
bien la polyligne mais pas forcément dans le bon sens (sens de la numérisation)

Je vais me contenter des symboliques linéaires, c'est déjà pas si mal.

Merci à tous.

Hors ligne

 

Pied de page des forums

Powered by FluxBB