#1 Tue 15 May 2007 08:39
- stef56
- Participant occasionnel
- Date d'inscription: 15 May 2007
- Messages: 21
import shape dans postgis
Bonjour,
Je débute dans la cartographie et j'ai installé postgres et postGis.
Sous dos j'ai crée un ebase de donnée postGis. Mais je n'arrive pas à importer mon shape.
Je tape la ligne de commande suivante : shp2pgsql -D "chemin vers mon shape" "nom de ma table" "nom de ma base" | psql "nom de ma base";
j'ai des problèmes de droit car il me demande un mot de passe, comment puis je taper cette ligne de commande en utilisant l'utisateur postgres ?
merci pour votre aide
Hors ligne
#2 Tue 15 May 2007 09:16
- stef56
- Participant occasionnel
- Date d'inscription: 15 May 2007
- Messages: 21
Re: import shape dans postgis
En fait j'ai réussi à régler mon problème de droit en faisait d'abord un "runas" sous dos pour changer d'utilisateur.
J'ai importé mon fichier shape. Par contre dans la table crée la colonne "the_geom" contient des données comme celles ci :
01060000000100000001030000000100000043010000A044937435511BC02AF8CB3F0CE34040A04D237D7D4C1BC0F2FC8B2491E04040A0609378AF421BC0...
est-ce normal ? Je m'attendais à avoir des donnees comme par exemple : MULTIPOLYGON("pint"...
Merci pour votre aide car je suis un peu perdue
Hors ligne
#3 Tue 15 May 2007 09:33
Re: import shape dans postgis
Normal les données géométriques sont en binaires/hexadécimal. Pour afficher qqchose de plus compréhensible :
Code:
select AsText(the_geom) from table
Bonne chance
Fred
GeoRezo vous aide ==> Aidez GeoRezo !
Hors ligne
#4 Tue 15 May 2007 11:46
- stef56
- Participant occasionnel
- Date d'inscription: 15 May 2007
- Messages: 21
Re: import shape dans postgis
Effectivement c'est beucoup plus compréhensible !
en fait cette table comporte un ensemble de points correspondant au contour d'un pays et j'ai essayé (en php) d'utiliser la fonction assvg pour le redssiner en svg et j'obtiens un path très bizarre.
Quelle est la méthode pour extraire ces données et les insérer dans un svg ?
Merci
Hors ligne
#5 Tue 15 May 2007 22:36
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: import shape dans postgis
C'est la bonne methode (asSVG), mais il faut un moyen d'ordonner les points pour representer le contour du pays. Sinon, AsSVG recupere les points comme il l'entend depuis postgis puis crée le path.
Le mieux serait de creer un vrai polygone a partir de ces points, ou alors de faire une requete permettant a asSVG de recuperer une liste ordonée de points.
Nicolas
Hors ligne
#6 Wed 16 May 2007 09:53
Re: import shape dans postgis
Bonjour,
si vous avez bien inséré un MULTIPOLYGONE, il faut penser que SVG à son origine des coordonnées en haut et à gauche de l'écran, ce qui n'est pas le cas pour les systèmes de coordonnées (Lambert, lat-long, ...) l'utilisation AsSVG[Translate(...)) de postgis permet d'obtenir un chemin plus cohérent avec l'image que l'on attend.
Salutations
Hors ligne
#7 Mon 21 May 2007 09:43
- stef56
- Participant occasionnel
- Date d'inscription: 15 May 2007
- Messages: 21
Re: import shape dans postgis
Merci pour vos réponses. Je vais étudier tout ça de plus près
Hors ligne
#8 Mon 21 May 2007 10:09
- stef56
- Participant occasionnel
- Date d'inscription: 15 May 2007
- Messages: 21
Re: import shape dans postgis
Bonjour,
J'ai une table qui contient les regions d'un pays.Cette table a été crée par importation d'un shape Arcview. Mes données sont sous forme 'MULTIPOLYGON'. Pourquoi ne sont-elles pas en, simple polygon, puisque c'est censé représenter un contour ? Cela me posera-til un problème si j'ai besoin de chercher par la suite les intersections entre les régions ???
Merci pour votre aide
Hors ligne
#9 Mon 21 May 2007 11:06
Re: import shape dans postgis
Bonjour,
Cela me posera-til un problème si j'ai besoin de chercher par la suite les intersections entre les régions ???
Pas que je sache, certaines fonctions postgis nécessitent d'avoir des multipolygone. Dans le cas où vous auriez des polygon (donc pas de multipolygon) vous devrez utiliser la fonction Multi() :
Multi(geometry) :
Renvoit la géométrie comme une géométrie multiple (MULTI*). Si la géométrie est déjà une MULTI*, elle est renvoyée inchangée.
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
#10 Mon 21 May 2007 13:13
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: import shape dans postgis
l'outil shp2pgsql (surement utilisé pour l'import), cree par defaut des multi geometries, car le format shapefile accepte de tels objets.
Il est possible de forcer la generation de geometries simples avec shp2pgsql avec l'option -S.
Si tous les polygones sont simples (numgeometries = 1 pour tous les objets), il est possible de mettre a jour la table en question, avec:
update matable set the_geom = geometryn(the_geom, 1);
Il faut avant s'assurer que tous les objets sont simples:
select distinct numgeometries(the_geom) from matable;
On peut également travailler avec la table telle quelle: les opérations d'intersection, union, etc. prennent en compte les objets multiples.
Nicolas
Hors ligne