IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Relier deux points, tracer des routes,postgis


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 20
    Points
    20
    Par défaut Relier deux points, tracer des routes,postgis
    Salut
    Je programme sous postgresql,, j'ai un table de type
    (clef primaire, x,y,numeroroute,ordrepoints)
    avec x et y des coordonnées de points,
    et numeroroute l'indicateur permettant d'identifier à quelle route appartiennent ces points
    et ordrepoint l'ordre dans lequel je dois assembler mes points pour tracer ma route.

    Mon but est de tracer toutes mes routes pour ensuite pour visualiser mes données sous quantum gis 10.
    Est ce que quelqu'n peut m'aider en me disant comment je peux créer une boucle pour indiquer dans mon instruction linestring quel ordre je souhaite (et que je puisse indiquer le nombre de points de chacunes de mes routes)?

    Pour l'instant j'ai crée pour chaque (x,y) un type géométrique 'point'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    create table matable as select * , geometryfromtext('point('||x||''||y||')',-1) as monpoint from mesdonnées;

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour , tu peux essayer cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    create or replace function xf_route(integer)  returns text as $body$
    declare coord geometry;
    declare route text;
    begin
    route='MULTIPOINT(';
    for coord in select monpoint from matable where numeroroute=$1 order by ordrepoints
    	loop
    	route=route||x(coord)||' '||y(coord)||',';
    	end loop;
    route=trim(trailing ',' from route);
    route=route||')';
    return route;
    end;
    $body$
    language 'plpgsql'
    cette fonction cree une geometrie multipoint (format texte) pour chaque route que tu va utiliser pour remlir table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE tbl_route as 
     select numeroroute,linefrommultipoint(xf_route(numeroroute)) from matable group by numeroroute
    pour visualiser sous qgis il te faut un champs integer unique donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table tbl_route add constraint num_unique unique (numeroroute )

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    ok
    la programmation ressemble exactement à ce que je voulais, j'exécute ça et je vous tiens au courant!

Discussions similaires

  1. relier deux points entre eux
    Par persé dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/04/2015, 14h03
  2. [Google Maps] Masquer le tracer des routes
    Par fabienlege dans le forum APIs Google
    Réponses: 4
    Dernier message: 04/12/2011, 12h25
  3. Relier deux points dans l'espace par des segments perpendiculaires
    Par Poupi0 dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 27/04/2010, 15h06
  4. Réponses: 6
    Dernier message: 27/04/2007, 22h50
  5. [TP] Relier deux points ?
    Par wwwroom dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 28/06/2005, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo