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

#1 Thu 24 July 2008 12:41

NyPon
Participant actif
Date d'inscription: 3 Nov 2008
Messages: 111

google earth - postgis

Bonjour,

j'ai dessiné une parcelle dans google earth que j'ai enregistrer en .kml.

j'arrives sans problème à l'intégrer dans postgis de deux méthodes :

j'ouvre QGIS et je l'enregistre en shp que j'importe dans postgis ensuite. avec un éditeur DBF je peux rajouter des colonnes ... (méthode longue)

ou alors je fais une requête SQL en prenant les coordonnées dans la balise <coordinate> la géométry est bien intégrée dans la table que je veux ( à condition d'enlever la contrainte de vérification srid(the_geom)=27572.

le problème c'est que qgis ou gvsig ne veulent plus afficher ma table parcelle après ça, plus un seul polygone.
lorsque j'enlève la ligne, ils m'affichent sans problème mes parcelles.
Je sais que la projection est différente (plate carrée je crois pour google earth epsg 4326 et je veux du epsg 27572je crois)

j'ai plusieurs questions :

je voulais savoir si je peux par exemple intégrer mon polygone dans une nouvelle table et ensuite changer la projection puis l'intégrer dans ma table parcelle ? est-ce une bonne solution ?

peut-on régler le problème dans la requête SQL ?

avec OGR2OGR j'ai trouvé ça sur un sujet récent mais c'est pour convertir un SHP

ogr2ogr -overwrite -s_srs "EPSG:4326" -t_srs "EPSG:27572" -f PostgreSQL
PG:"host=serveur user=postgres password=postgres dbname=nom_base"
fichier_shape.shp -lco LAUNDER=yes -lco DIM=2 -lco
GEOMETRY_NAME=the_geom -lco PRECISION=NO -nln nom_table_a_creer

puis-je l'utiliser pour prendre une table postgis, la reprojeter et la renomer ? quelque chose comme ça ?

Si vous avez d'autres pistes, je suis preneur

Merci,

cordialement

Hors ligne

 

#2 Thu 24 July 2008 13:01

NyPon
Participant actif
Date d'inscription: 3 Nov 2008
Messages: 111

Re: google earth - postgis

je viens d'essayer d'ouvrir ma table "test" dans QGIS directement après l'import de la requête SQL (elle contient donc mon polygone que j'ai dessiné dans GE. j'ai réussi à l'ouvrir dans QGIS et j'arrive aussi à afficher ma table parcelle et département.

mais elles sont très éloignées l'une de l'autre. c'est bien un problème de projection.

voilà petite précision.

Hors ligne

 

#3 Thu 24 July 2008 14:03

René-Luc D'Hont
Participant assidu
Date d'inscription: 7 Nov 2006
Messages: 328
Site web

Re: google earth - postgis

Après le transformation KML->SHP, vous pouvez intégrer le SHP dans PostGIS et modifier la projection avec OGR2OGR.

Hors ligne

 

#4 Thu 24 July 2008 14:48

NyPon
Participant actif
Date d'inscription: 3 Nov 2008
Messages: 111

Re: google earth - postgis

Bonjour,

j'avais pas pensé à faire comme.

j'ai essayer.

donc j'ai enregistrer le shp à partir de QGIS, (j'espère que c'est pas là que ça pose problème)

ensuite shp2pgsql -D -I -s 27572 C:/test.shp nomtablepostgis | psql -U postgres dbname.

j'ai essayer
ensuite shp2pgsql -D -I -t_srs 27572 C:/test.shp nomtablepostgis | psql -U postgres dbname.

mais ça ne donne rien avec -tsrs.

j'ai ensuite essayé de supprimer le .prj, je me suis dit que c'était peut-être ça mais non il ne me l'affiche toujours pas dans la bonne projection.

Hors ligne

 

#5 Thu 24 July 2008 16:01

René-Luc D'Hont
Participant assidu
Date d'inscription: 7 Nov 2006
Messages: 328
Site web

Re: google earth - postgis

je crois qu'il faut mettre -t_srs EPSG:27572
à vérifier sur la page de ogr2ogr

Hors ligne

 

#6 Fri 25 July 2008 10:31

freesnowpetrel
Participant assidu
Lieu: Pretoria, Afrique du Sud
Date d'inscription: 1 Mar 2007
Messages: 222

Re: google earth - postgis

Bonjour,
Si j'ai bien compris tu as digitalise ta parcelle sous google earth, son systeme de projection est donc 4326.
Il faut donc que tu la reprojettes en 27572. Si tu n'y arrives pas avec OGR2OGR une autre solution est de le faire avec PostGIS une fois tes donnees importees dans une table temporaire. Il faut tout de meme etre bien sur que ta colonne geometrie dans postgis est referencee comme 4326. Si c'est le cas tu peux utilise une requete SQL comme ceci :

Code:

SELECT Transform(GEOM,27572) FROM GEOTABLE;

dans une vue ou lors de la creation d'une nouvelle table.

Rodolphe

Hors ligne

 

#7 Fri 25 July 2008 14:52

NyPon
Participant actif
Date d'inscription: 3 Nov 2008
Messages: 111

Re: google earth - postgis

Bonjour, merci pour les réponses.

j'ai essayé de faire : shp2pgsql -D -I -t_srs EPSG:27572 C:/test.shp nomtablepostgis | psql -U postgres dbname.

mais ça ne fonctionne pas. je suis en train d'essayer l'autre méthode mais le srid dans postgis est -1.

il me met le message d'erreur suivant : ERREUR:  Input geometry has unknown (-1) SRID

si je change à la main le srid dans la table geometry column ça ne marche pas (un peu trop facile).


j'ai essayé :
shp2pgsql -D -I -a EPSG:4326 C:/test.shp nomtablepostgis | psql -U postgres dbname.

le message d'erreur est le suivant :

C:\Program Files\PostgreSQL\8.3\bin>shp2pgsql -D -I -a EPSG:4326 C:/test.
shp nomtable | psql -U postgres dbname
EPSG:4326: shape (.shp) or index files (.shx) can not be opened, will just impor
t attribute data.
EPSG:4326: dbf file (.dbf) can not be opened.

j'ai essayé -t, -t_rsr, -s, -s_srs et -a, -a_srs, le srs par défaut reste -1


j'ai regardé dans le prj exporté de Google et il y a cette ligne:

GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]]
,PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

dans la table srs de postgis, on trouve ça au code EPSG 4326:

GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]]
,PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]]
,AUTHORITY["EPSG","4326"]]


voilà, si ça peut aider.

merci encore

Hors ligne

 

#8 Fri 25 July 2008 15:00

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

Re: google earth - postgis

Bonjour,

Merci de lire l'aide de la commande avant de tenter tout et n'importe quoi wink

shp2pgsql: illegal option -- -
RCSID: $Id: shp2pgsql.c 2513 2006-10-14 14:22:10Z mschaber $ RELEASE: 1.1.6
USAGE: shp2pgsql [<options>] <shapefile> [<schema>.]<table>
OPTIONS:
  -s <srid>  Set the SRID field. If not specified it defaults to -1.


Donc on reprend, si vous voulez définir le SRID (cad le système de projection) de votre couche, il faut utiliser l'option "-s 27572", ce qui donne :

Code:

shp2pgsql -D -I -a -s 4326 C:/test.shp nomtablepostgis | psql -U postgres dbname.

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 Mon 28 July 2008 11:48

NyPon
Participant actif
Date d'inscription: 3 Nov 2008
Messages: 111

Re: google earth - postgis

Bonjour,

ça marche, mais j'ai du faire le changement de projection dans OGR2OGR lors de la création du SHP.

ce qui n'était pas bon, c'était de transformer le kml en shp sans changer la projection.

donc j'ai fait :

1) saisi du polygone dans GE
2) enregistrement en KML sous Chmm
3) transformation du KML en SHP :
C:\Program Files\FWTools2.2.1>ogr2ogr -append -f "ESRI Shapefile" C:\nomdshp (sans extension -> il me créé un dossier) C:\monpolygoneGE.kml -t_srs EPSG:27572
4) insertion dans postgis :
C:\Program Files\PostgreSQL\8.3\bin>shp2pgsql -D -I -s 27572 C:/dossiershp/nomshp.shp nom_table_à_créer | psql -U postgres dbname

il me reste cependant à l'intégrer à la suite d'une table existante.

voilà, je vous remercie pour toutes vos réponses ça m'a beaucoup aidé.

Hors ligne

 

#10 Mon 28 July 2008 12:07

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

Re: google earth - postgis

Bonjour,

Tu peux supprimer l'étape 4) en l'intégrant directement dans l'étape 3) avec ogr2ogr il suffit de modifier le paramètre -f 'PG:XXX ...'

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 Tue 29 July 2008 17:15

NyPon
Participant actif
Date d'inscription: 3 Nov 2008
Messages: 111

Re: google earth - postgis

Ok

c'est super, ça marche

merci beaucoup pour votre aide à tous.

à bientôt sur le forum.

wink

Hors ligne

 

Pied de page des forums

Powered by FluxBB