Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 15 December 2014 11:50

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Création d'une table sur PostgreSQL/Postgis

Bonjour,

Je souhaite créer une table avec postgis (je débute tout juste). J'ai créé mes colonnes et je les ai remplies, mais ce que je ne comprends pas c'est comment ajouter toute la partie géographique à ma table (SRID, coordonnées etc.) ?

Merci d'avance

Hors ligne

 

#2 Mon 15 December 2014 12:22

PA
Membre
Lieu: Paris
Date d'inscription: 5 Sep 2005
Messages: 3259
Site web

Re: Création d'une table sur PostgreSQL/Postgis

Bonjour,

Comment avez-vous procéder ? Avec quel outil ?
Votre table est-elle géographique ?


Pierre-André Le Ny
Modérateur QGIS, Données, Coin de l'OpenSource
Aidez l'association GeoRezo !

Hors ligne

 

#3 Mon 15 December 2014 12:25

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Création d'une table sur PostgreSQL/Postgis

Bonjour,

Difficile comme question, il y a tellement de possibilités !

* à partir d'un shapefile existant (mais il créé la table et rempli toutes les colonnes) : shp2pgsql
* à partir d'une requête SQL :
  - Il faut créer un champ géométrique : avec la fonction addGeoemtrycolumn() : SELECT addGeometryColumn() (je te conseil d'aller voir la doc [1] pour les détails des paramètres de cette fonction) ou bien si tu es sur PsotGIS 2 : ALTER TABLE maTable ADD COLUMN the_geom geometry(POINT, 4326); (plus simple wink )
  - UPDATE maTable Set monChamp = st_srid(st_makepoint(4,3),4326); mais ca dépend de la projection que tu vas utiliser. Tu peux aussi utiliser un WKT monChamp = St_geometryFromText('POINT(4 3), 4326);


Bien évidement ce sont des pistes, ces requêtes ne vont pas toutes fonctionner tel quel.

Y.
[1] http://postgis.net/docs/AddGeometryColumn.html


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#4 Mon 15 December 2014 14:21

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Re: Création d'une table sur PostgreSQL/Postgis

merci beaucoup. J'ai effectué la requête ALTER TABLE maTable ADD COLUMN the_geom geometry(POINT, 4326); et mon champs a été créé. Du coup, ce que je ne comprends pas c'est après comment remplir ce champs ?
J'ai construit une table test avec postgreSQL, elle n'est pas géographique. Je voudrais justement tout faire par ma moi même pour mieux comprendre.

merci pour votre aide!

Hors ligne

 

#5 Mon 15 December 2014 14:31

PA
Membre
Lieu: Paris
Date d'inscription: 5 Sep 2005
Messages: 3259
Site web

Re: Création d'une table sur PostgreSQL/Postgis

La deuxième instruction Update proposée par Yves.


Pierre-André Le Ny
Modérateur QGIS, Données, Coin de l'OpenSource
Aidez l'association GeoRezo !

Hors ligne

 

#6 Mon 15 December 2014 16:32

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Re: Création d'une table sur PostgreSQL/Postgis

ok merci. Il me marque : ERROR:  function st_srid(geometry, integer) does not exist
LINE 1: UPDATE destinations Set the_geom = st_srid(st_makepoint(4,3)...
                                           ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
********** Erreur **********

pourtant j'ai cherché dans la liste des fonctions et cela a l"air de correspondre..

Hors ligne

 

#7 Mon 15 December 2014 16:38

PA
Membre
Lieu: Paris
Date d'inscription: 5 Sep 2005
Messages: 3259
Site web

Re: Création d'une table sur PostgreSQL/Postgis

Juste un st_makepoint()


Pierre-André Le Ny
Modérateur QGIS, Données, Coin de l'OpenSource
Aidez l'association GeoRezo !

Hors ligne

 

#8 Mon 15 December 2014 17:33

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Création d'une table sur PostgreSQL/Postgis

Bonjour,

Il y avait une petite errur dans la requête SQL :

Code:

UPDATE destinations Set the_geom = st_setsrid(st_makepoint(4,3), 4326);

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#9 Fri 19 December 2014 18:25

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Re: Création d'une table sur PostgreSQL/Postgis

Merci cela a marché. Si je comprends bien cette manipulation créée le type de géométrie et le type de système de projection. Mais si ensuite je veux pouvoir donner à chaque entité créée des coordonnées géographiques, comment je peux faire ? Désolée je suis un peu paumée dans les possibilités de postgresql/postgis.
Merci encore pour votre aide

Hors ligne

 

#10 Mon 22 December 2014 15:54

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Re: Création d'une table sur PostgreSQL/Postgis

Bonjour,

A quoi correspond 0101000020E610000000000000000010400000000000000840 dans la colonne the geom ? Est-ce cela que je dois modifier?

Merci,

Hors ligne

 

#11 Mon 22 December 2014 16:39

Benoit91
Participant assidu
Date d'inscription: 2 Oct 2008
Messages: 263

Re: Création d'une table sur PostgreSQL/Postgis

Bonjour

Il s'agit de la géométrie encodée (0101000020E610000000000000000010400000000000000840).

La requête que vous avez effectuée vous a créée un point avec les coordonnées lat 4 long 3 (ou l'inverse je ne sais plus) dans le système de projection epsg 4326

Vous pouvez consulter ce site pour avoir plus d'infos
http://www.postgis.fr/chrome/site/docs/ … index.html

Cordialement.

Hors ligne

 

#12 Mon 22 December 2014 16:56

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Re: Création d'une table sur PostgreSQL/Postgis

Merci! du coup savez vous comment je peux changer ces points de coordonnées pour chaque objet? J'ai lu les infos sur le site postgis.fr mais je n'arrive pas à trouver la réponse a a question.

Hors ligne

 

#13 Tue 23 December 2014 09:51

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: Création d'une table sur PostgreSQL/Postgis

Bonjour,
Il faut mettre une clause WHERE pour affecter un objet ou un groupe d'objet.

Ici l'objet qui a pour id 22:
UPDATE destinations SET the_geom = st_setsrid(st_makepoint(4,45), 4326) WHERE id= 22;

Hors ligne

 

#14 Tue 30 December 2014 12:27

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Re: Création d'une table sur PostgreSQL/Postgis

D'accord merci. Je voudrais en fait, créer une colonne X,Y pour attribuer à chaque objet des coordonnées. Est-ce déjà possible ? et ou puis-je trouver le bon format de coordonnées géographiques ? car pour le moment j'ai essayé mais lorsque j'ouvre ma table avec QGIS mes points ont disparu.
Merci de votre aide

Hors ligne

 

#15 Tue 30 December 2014 12:51

just
Participant occasionnel
Date d'inscription: 5 Jan 2012
Messages: 21

Re: Création d'une table sur PostgreSQL/Postgis

En fait c'est bon je viens de comprendre que je pouvais les modifier dans la colonne the geom. Petite question supplémentaire : quel est l'intéret du systeme de projection epsg 4326 par rapport à EPSG 3857 ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB