#1 Thu 03 May 2012 15:06
- Oliv38
- Participant actif
- Date d'inscription: 21 Dec 2011
- Messages: 142
Création colonne géométrique PostGIS
Bonjour,
c'est peut-être une question redondante et je m'en excuse si c'est le cas.
A partir d'un fichier excel contenant des données liées à la localisation de points, je l'ai importer dans Postgresql/postgis. Je souhaiterais maintenant créer la colonne géométrique associée. J'ai réussit à créer la colonne par un SELECT AddGeometryColumn mais cette colonne est vide. Je possède pourtant dans ma table la localisation X - Y de chacun de mes points.
Comment faire pour remplir cette colonne automatiquement?
Je vous remercie par avance.
Hors ligne
#2 Thu 03 May 2012 16:13
Re: Création colonne géométrique PostGIS
Bonjour,
Si vous avez vos données X et Y dans deux champs séparés, il va falloir créer une géométrie de type ponctuel avec vos deux champs x et y.
Pour ce faire, vous pouvez utiliser un outil tel Qgis ou alors utiliser une fonction native de Postgis et plus particulièrement la fonction st_makepoint()
http://postgis.refractions.net/docs/ST_MakePoint.html
Bonne continuation
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Thu 03 May 2012 17:18
- Oliv38
- Participant actif
- Date d'inscription: 21 Dec 2011
- Messages: 142
Re: Création colonne géométrique PostGIS
Merci bien, cela répond tout à fait à ma question et mon besoin.
A+
Oliv'
Hors ligne
#4 Thu 25 October 2012 13:46
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
Re: Création colonne géométrique PostGIS
Bonjour,
je déterre ce post car je n'arrive pas à mes fins.
J'ai de la même manière une table sous Postgis avec deux champs correspondants aux coordonnées X,Y en Lambert 93.
J'ai créé un champ "geom" de type géométrie avec la fonction "Add Geometry Column", jusque là tout va bien.
Je voudrais maintenant remplir automatiquement ce champ "geom" avec la fonction GeomFromText pour les 200 occurences de ma table.
Voici la requête SQL que j'écris:
Code:
update releve SET geom =geomFromText ('POINT('x' 'y')',2154);
je précise que mes champs "x" et "y" sont de type real.
Voici l'erreur qui s'affiche après éxécution :
Code:
ERROR: parse error - invalid geometry CONTEXTE : SQL function "geomfromtext" statement 1
Si quelqu'un peut éclairer ma lanterne.
D'avance merci pour vos réponses
Gui
Hors ligne
#6 Thu 25 October 2012 15:07
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
Re: Création colonne géométrique PostGIS
re,
j'ai testé la requete suivante:
Code:
update releve SET geom=geomFromText('POINT(x y)', 2154);
et... toujours la même erreur "Invalid geometry"
est ce que mon type de champ "real" pour les coordonnées X et Y serait incompatible ? Faut il les passer en caractère ?
Dernière modification par guibouvier (Thu 25 October 2012 15:08)
Hors ligne
#9 Thu 25 October 2012 20:30
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
Re: Création colonne géométrique PostGIS
bonsoir,
merci pour votre aide.
le champ X de type real contient les coordonnées en abscisse des points en lambert 93 (ex: 840000,50)
le champ Y de type real contient les coordonnées en ordonnée des points en lambert 93 (6450300,50)
quant au champ geom, il s'agit d'un champ de type geometrie de Postgis créé par la fonction Addgeometrycolumn
lorsque je créé un update avec des valeurs de coordoonnées directement sur une occurence de la table, cela fonctionne.
on dirait que c'est la référence aux champs X,Y dans la formule update qui pose souci....
Hors ligne
#10 Thu 25 October 2012 21:19
Re: Création colonne géométrique PostGIS
Bonjour,
Il faut concaténer les champs x et y avec les chaines de caractères pour créer le WKT :
Code:
update releve SET geom=geomFromText('POINT('||x||' '||y||')', 2154);
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
#11 Thu 25 October 2012 21:20
Re: Création colonne géométrique PostGIS
Bonjour,
Je déplace le thread sur GeoBD
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
#12 Fri 26 October 2012 09:31
- guibouvier
- Participant actif
- Date d'inscription: 23 Jan 2007
- Messages: 104
Re: Création colonne géométrique PostGIS
Bonjour,
j'ai testé la requête de Yves avec concaténation des chaines de caractère. Cela fonctionne puisque la colonne geom est bien remplie.
Merci pour votre aide.
Gui
Hors ligne
#13 Wed 14 November 2012 21:30
- bambayaya
- Juste Inscrit !
- Date d'inscription: 5 Nov 2010
- Messages: 1
Re: Création colonne géométrique PostGIS
bonjour , je viens d'installer postgresql et son extension spatiale postgis. mon objectif est de créer une base de données avec pour model postgis, c'est à dire contenant les champs relative aux données géographiques, mon problème qu'en suivant les étapes détaillées sur le site de postgis.fr, je n'arrive pas à créer ma base de données, je reçois un message d'erreur comme ceci : une erreur s'est produite: erreur: la base de données source 'template_postgis_20' est accédée par d'autres utilisateurs
Détail: 1 autre session utilise la base de données. j'aimerais donc savoir , comment je peux m'y prendre pour résoudre ce problème.
Hors ligne
#14 Thu 15 November 2012 09:51
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Création colonne géométrique PostGIS
Bonjour,
Quelles commandes utilisez-vous, qu'etes-vous en train de faire lorsque l'erreur se produit ?
Vous utilisez PgAdmin ?
Si oui, une fois connecté au cluster PostgreSQL, le programme lock les autres bases et empeche qq operations comme drop.
Vous pouvez essayer de vous deconnecter de PgAdmin et relancer vos commandes.
Nicolas
Hors ligne