#1 Mon 02 December 2013 11:44
- damien_B
- Participant occasionnel
- Lieu: Limoges
- Date d'inscription: 14 Nov 2013
- Messages: 10
QGIS 2.0.1 : Déplacer "automatiquement" des points
Bonjour,
je suis actuellement en stage dans le cadre de mes études, et donc assez "novice" en matière de SIG.
Je dispose d'une couche vecteurs de points. Je voudrais décaler "automatiquement" la géométrie de tous les points de leurs coordonnées actuelles.
Par exemple que tous mes points se retrouvent à 5 m de leurs positions actuelles.
J'ai trouver quelques pistes mais j'avoue ne pas trop comprendre comment y arriver et j'ai sûrement fais des erreurs dans mon cheminement. J'avais jusque là résolu pas mal de mes problèmes en me documentant mais là je bloque.
En suivant une piste j'ai enregistré ma couche SHP au format spatialite avec Qgis.
Puis avec le plugin QSpatialite il semblerait que la fonction ShiftCoords réponde à mes attentes.
Mais je ne sais absolument pas comment rendre la fonction valide.
En espérant avoir donné suffisament d'informations.
Merci d'avance.
Hors ligne
#2 Mon 02 December 2013 14:03
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 2.0.1 : Déplacer "automatiquement" des points
Bonjour,
Vous trouverez ici les paramètres que prend ShiftCoords
Je ne connais pas Spatialite ni l'interface de QSpatialite (ni votre version) mais de ce que je vois sur différents liens (comme [ur=http://code.google.com/p/qspatialite/l]ici[/url] par ex), il me semble que vous devez avoir un onglet "Editeur SQL". Pour ShiftCoords, je ne pense pas qu'il y ait un endroit particulier pour l'activer. Si Spatialite est bien installé, il doit l'être aussi, je pense.
matable étant le nom de votre table et geom le nom du champ géométrique et en supposant que vous envisagez une translation de 5m en abscisse, essayez ce code dans l'éditeur SQL
Code:
select champ1, champ2,..., shiftcoords(geom,5,0) from matable
Vous pouvez ensuite charger le résultat dans QGIS puis réenregistrer dans la base (ou pas). Je complexifie peut-être les choses, ignorant s'il y a une fonction directe qui fait la création de la nouvelle table (avec le contenu) sans vous faire écrire trop de SQL.
Et sinon, le code ci-après devrait permettre de directement faire la modif dans la table actuelle sans en créer une nouvelle.
Code:
update matable set geom=shiftcoords(geom, 5, 0)
Hors ligne
#3 Tue 03 December 2013 10:23
- damien_B
- Participant occasionnel
- Lieu: Limoges
- Date d'inscription: 14 Nov 2013
- Messages: 10
Re: QGIS 2.0.1 : Déplacer "automatiquement" des points
Merci pour votre réponse. En fouillant de mon côté j'ai trouver les mêmes liens que vous et votre réponse m'a confirmé la requête "update etc" qui me permet de décaler tous mes points. Ca me permet déjà d'avancer un peu dans mon projet.
Je doute que cela soit possible (ou alors cela doit être hors d'atteinte pour moi) mais voilà ce qui serait parfait pour mon projet =>
L'état actuel de mes couches :
Je dispose d'une couche de points "supports" et d'une couche de points "panneaux".
Jusqu'ici les points panneaux sont localisés sans réelle protocole (il peut être très proche du support, légèrement décalé, fortement décalé dans n'importe quelle direction, etc).
Le meilleur résultat que je souhaiterais avoir :
décaler les panneaux de leurs supports (un champ dans la couche panneau reprend l'identifiant du support) dans plusieurs directions (schématiquement pour répartir les panneaux autour de leur support).
Je doute fortement que cela soit réalisable vu que le relevé actuel ne répond pas à un protocole d'ensemble, il m'apparaît donc difficile d'automatiser cette demande pour l'ensemble de ma couche. En espérant me tromper
Merci d'avance.
Dernière modification par damien_B (Tue 03 December 2013 10:24)
Hors ligne
#4 Wed 04 December 2013 10:18
- damien_B
- Participant occasionnel
- Lieu: Limoges
- Date d'inscription: 14 Nov 2013
- Messages: 10
Re: QGIS 2.0.1 : Déplacer "automatiquement" des points
Après de nouvelles informations, je n'ai pas nécessité de faire ce que j'ai expliqué dans mon dernier post (et visiblement cela est impossible, en tout cas impossible de manière automatisée). Du coup je vais en rester au shift de X mètres en abscisse et ordonnées SANTANNA.
Par contre une fois le shift effectué, le shape que j'enregistre est en géométrie multipoint au lieu de point. Je n'arrive pas à savoir si la différence est cruciale ou pas? (Notamment dans un import oracle par la suite, cela peut-il poser des problèmes?)
Hors ligne