#1 Thu 30 October 2008 15:40
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Décalage de ligne
Bonjour,
j'ai une couche avec des polylignes,
je souhaiterais décaler chacune d'elles parallèlement à son origine.
Chaque objet possède un attribut contenant la valeur du décalage.
J'ai essayé d'utiliser le transformer Bufferer (avec l'option coté_droit_seulement) mais ce traitement me donne un résultat peu satisfaisant car il déforme certaines des polylignes.
Quelqu'un aurait-il une piste pour les déplacer ou les recréer (mais sans modifier leur géométrie) ?
En esperant avoir été clair ...
Merci d'avance
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#2 Thu 30 October 2008 16:06
- Sylvie
- Membre
- Date d'inscription: 5 Sep 2005
- Messages: 3066
Re: Décalage de ligne
Bonjour,
OFFSETTER ...
... en inventant quelque chose pour passer de l'attribut 'valeur du décalage' à DECALAGE X, DECALAGE Y (et DECALAGE Z) qui sont attendus en paramètres
Sylvie
Hors ligne
#3 Thu 30 October 2008 16:18
Re: Décalage de ligne
Bonjour,
Vous pouvez essayer le transformer AFFINER (qui fait une transformation des coordonnées de la ligne) en mettant une valeur de 1 dans A et dans E (pour éviter d'agrandir la ligne de départ) et puis dans C et F une même valeur mais avec un signe opposé.
Véronique Herzl
Hors ligne
#4 Fri 31 October 2008 07:33
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: Décalage de ligne
Bonjour,
Voilà ce que je ferai ..
Je prendrais chaque point et je leur affecterais un vecteur de translation. Tout cela pour créer en fait une nouvelle ligne. L'ancienne ligne serait détruite ensuite
Pierre-Yves JOUBERT
Communauté urbaine de Lyon
Hors ligne
#5 Fri 31 October 2008 11:27
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: Décalage de ligne
Bonjour,
Je me disais bien qu'il fallait utiliser ces méthodes et trouver la formule magique pour calculer les nouveaux coordonnées des vertex de mes lignes.
Mais il y a une chose dont je n'ai pas parler dans mon 1er message et qui ne simplifie pas le problème (bien au contraire). Il faudrait que le décalage se fasse toujours à droite de ma ligne d'origine en fonction de son sens de saisie.
Et la je sèche vraiment car je peux très bien avoir une ligne saisie dans un sens et une autre ligne parallèle à cette dernière mais saisie dans l'autre sens (dans un cas très simple d'une ligne orientée nord, je rajoute + 5 m à mes coordonnées X et pour une ligne orientée sud, je dois rajouter - 5m .... ).
Dans ce cas je ne vois pas du tout comment une simple formule pourrait me permettre de calculer mes nouvelles coordonnées.
Je pense que je vais essayer de persévérer avec le bufferer (qui fait le décalage à droite ou a gauche très bien) en essayant de résoudre les problème de déformation de géométrie provoqué par la création du buffer.
Et merci pour votre aide
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#6 Fri 31 October 2008 12:06
Re: Décalage de ligne
Si vous ne voulez pas de déformation, il faut utiliser offseter.
Pour connaître la valeur du décalage (Dx et Dy) vous pouvez faire la différence entre la première coordonnées de votre ligne d'origine (coordinateFetcher(0)) et la première coordonnées de la ligne généré par Bufferer.
Vous pouvez utiliser FeatureMerger pour récupérer sur un même objet le x_origine, y_origine et x_buffer, y_buffer.
Hors ligne
#7 Fri 31 October 2008 12:34
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: Décalage de ligne
Et qu'est qu'on fait si la ligne ressemble à un "U" ???
Hors ligne
#8 Fri 31 October 2008 14:38
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: Décalage de ligne
et pourquoi ne pas analyser l'angle de saisie de la ligne, du vecteur ? pour ensuite obtenir une typologie et faire les décalages en conséquence ?
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#9 Fri 31 October 2008 14:50
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: Décalage de ligne
Le problème avec bufferer c'est que l'origine de la ligne générée n'est pas forcement l'origine de la ligne qui serait décalée et pour certaines polylignes (contenant plus de 2 vertex) j'obtiens vraiment des résultat étranges, je vous ai mis une capture d'écran en pièce jointe.
Sur l'image la ligne originale est en rouge et le bufferer généré avec l'option coté_droit_seulement (ou gauche) est en jaune.
J'ai remarqué que cela arrivait lorsque qu'il y a un vertex proche du vertex de début ou de fin de la ligne (ici il y a quand même 0,5m).
Je vais essayer en supprimant les vertex trop proche sur les lignes pour voir ce que ca peut donner.
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#10 Fri 07 November 2008 16:15
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: Décalage de ligne
Bonjour,
pour info , j'ai relancé mon traitement avec FME 2009 (dernière version), et je n'ai plus les problèmes sur les buffer que j'ai décrit dans le message précédent.
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne