Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Le GeoRezo accueille un nouveau blog à la croisée des mondes de la géomatique et de l’urbanisme :  SIG & URBA

L’ambition de ce blog est de parler géomatique aux urbanistes :

- les tenir au courant de ce qui évolue en rapport avec leur métier,
- vulgariser un certain nombre de concept SIG et les éclairer par leur prolongement en urbanisme,
- communiquer sur les initiatives intéressantes …

Ce blog est un espace d’échange qui doit permettre de présenter des travaux, des réflexions intéressantes, des initiatives en toute liberté, et avec de l’envie.Les idées d’articles  ne manquent pas , et Aline, rédactrice principale de ce blog, compte sur le soutien et la participation de toutes les bonnes volontés, spécialistes de l’urbanisme, utilisateurs ou non de SIG.

Alors, réagissez, faites passer l’information, inscrivez le blog dans vos flux RSS …
Et rendez-vous la semaine prochaine pour un premier article intitulé “L’essentiel … sur la numérisation des PLU”.

L’équipe GeoRezo

#1 mar 08 décembre 2009 11:15

Kaa
Membre
Date d'inscription: 8 déc 2009
Messages: 4

Pb sur type 'polygon' dans Postgis

Bonjour,

J'ai un souci avec des champs au format 'polygon' sous PostGis.

Je m'explique :
dans la base de données que j'ai récupérée les infos géographiques sont stockées dans des champs de type 'polygon' ( ou 'line' ou 'point'). Cependant je n'arrive pas à utiliser les fonctions SQL géo. classiques sur ce type de champ (ex: pour un select centroid, j'ai le message d'erreur suivant
ERROR:  function centroid(polygon) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
)

Et je n'arrive pas non plus à les visualiser sous QGis, la couche affichée est vide (alors qu'avec les champs de type 'geometry' tout fonctionne bien).

Il semble que ce type ne soit pas reconnu comme un format géométrique. Comment s'utilise t-il alors ?
Ne vaut-il pas mieux repasser par un type 'geometry' ?

Merci d'avance

Hors ligne

 

#2 mar 08 décembre 2009 11:40

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 sep 2005
Messages: 207
Site web

Re: Pb sur type 'polygon' dans Postgis

Kaa a écrit:

Bonjour,

J'ai un souci avec des champs au format 'polygon' sous PostGis.

Je m'explique :
dans la base de données que j'ai récupérée les infos géographiques sont stockées dans des champs de type 'polygon' ( ou 'line' ou 'point'). Cependant je n'arrive pas à utiliser les fonctions SQL géo. classiques sur ce type de champ (ex: pour un select centroid, j'ai le message d'erreur suivant
ERROR:  function centroid(polygon) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.
)


Et je n'arrive pas non plus à les visualiser sous QGis, la couche affichée est vide (alors qu'avec les champs de type 'geometry' tout fonctionne bien).


Il semble que ce type ne soit pas reconnu comme un format géométrique. Comment s'utilise t-il alors ?
Ne vaut-il pas mieux repasser par un type 'geometry' ?

Merci d'avance

Question bete: est-ce que postgis est installé sur la nouvelle base ? si celle-ci provient d'une sauvegarde, il faut bien verifier que Pgis est la, complet.
que donne:

select postgis_full_version();

La table geometry_columns est-elle bien renseignée pour les tables geo ?

Si, le type polygon est bon.
Les geometries sont-elles vraiment toutes de type pg dans la table ?:

select distinct st_geometryType(geom) from matable;

Nico

Hors ligne

 

#3 mar 08 décembre 2009 12:02

Kaa
Membre
Date d'inscription: 8 déc 2009
Messages: 4

Re: Pb sur type 'polygon' dans Postgis

PostGis a l'air bien installé (345 fonctions) et la table geometry_columns est renseignée

select postgis_full_version();
>>
"POSTGIS="1.1.6" GEOS="2.2.3-CAPI-1.1.1" PROJ="Rel. 4.4.9, 29 Oct 2004" USE_STATS"



Il n'y a pas de fonction st_geometryType sur la base mais geometryType(geometry) qui donne un message d'erreur pour mon type polygon

select distinct geometryType(geom) from matable;
>>
ERROR:  function geometrytype(polygon) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

Hors ligne

 

#4 mar 08 décembre 2009 12:06

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 sep 2005
Messages: 207
Site web

Re: Pb sur type 'polygon' dans Postgis

Kaa a écrit:

PostGis a l'air bien installé (345 fonctions) et la table geometry_columns est renseignée

select postgis_full_version();
>>
"POSTGIS="1.1.6" GEOS="2.2.3-CAPI-1.1.1" PROJ="Rel. 4.4.9, 29 Oct 2004" USE_STATS"



Il n'y a pas de fonction st_geometryType sur la base mais geometryType(geometry) qui donne un message d'erreur pour mon type polygon

select distinct geometryType(geom) from matable;
>>
ERROR:  function geometrytype(polygon) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

Houla, c'est du moyen age cette version de pgis. Bcp de bugs, bcp de choses non implémentées, plus maintenue, etc.

faut passer a la 1.4, ca ira mieux apres smile

Dernière modification par Nicolas Ribot (mar 08 décembre 2009 12:08)

Hors ligne

 

#5 mer 09 décembre 2009 11:58

Kaa
Membre
Date d'inscription: 8 déc 2009
Messages: 4

Re: Pb sur type 'polygon' dans Postgis

J'ai installé Postgis 1.4 mais toujours les mêmes pbs avec le type 'polygon'

Hors ligne

 

#6 mer 09 décembre 2009 12:09

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 sep 2005
Messages: 207
Site web

Re: Pb sur type 'polygon' dans Postgis

Kaa a écrit:

J'ai installé Postgis 1.4 mais toujours les mêmes pbs avec le type 'polygon'

Hmm, que donne :

select distinct st_geometryType(geomcol) from matable;
ou:
select astext(geomcol) from matable;

Nico

Hors ligne

 

#7 mer 09 décembre 2009 12:14

Kaa
Membre
Date d'inscription: 8 déc 2009
Messages: 4

Re: Pb sur type 'polygon' dans Postgis

Toujours pareil : fonctions inexistantes pour le type 'polygon' (ça marche pour les types geometry)

Hors ligne

 

#8 mer 09 décembre 2009 12:24

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 sep 2005
Messages: 207
Site web

Re: Pb sur type 'polygon' dans Postgis

Kaa a écrit:

J'ai installé Postgis 1.4 mais toujours les mêmes pbs avec le type 'polygon'

Ooops pardon, grosse confuse de ma part :~
les POINT, LINE, PATH, POLYGON que vous voyez dans vos colonnes sont surement les types geometriques de postgresql, pas ceux de postgis (qui est effectivement GEOMETRY).

Pour verifier, si une fonction select npoints(geomcol) from matable renvoie un resultat, mais pas
select st_geometryType(geomcol) from matable, alors ce sont des types postgresql et pas postgis.

Postgis ne sait pas gerer ces types Postgresql, mais rajoute ses propres types, a travers GEOMETRY.

Il faudra alors convertir les types postgresql en postgis pour se servir de la partie spatiale (jamais trop fait)

Le passage a 1.4 permet tout de meme d'avoir la derniere postgis dispo wink

Nicolas

Hors ligne

 

#9 mer 09 décembre 2009 12:26

vincentp
Membre
Lieu: Paris
Date d'inscription: 18 jui 2006
Messages: 49

Re: Pb sur type 'polygon' dans Postgis

Bonjour,

Kaa a écrit:

Bonjour,

J'ai un souci avec des champs au format 'polygon' sous PostGis.

[snip]

Il semble que ce type ne soit pas reconnu comme un format géométrique. Comment s'utilise t-il alors ?
Ne vaut-il pas mieux repasser par un type 'geometry' ?

Les champs de type «polygon» n'ont rien à voir avec PostGIS, ce sont des champs de type géométrique de PostgreSQL. Sisi, il y a de la géométrie dans PostgreSQL en dehors de PostGIS, même si c'est très peu utilisé.

http://www.postgresql.org/docs/8.2/stat … etric.html

Il ne sera donc pas possible d'utiliser les fonctions PostGIS la dessus, et les programme qui reconnaissent les géométries PostGIS ne vont pas non plus pouvoir utiliser ces champs.

Pour pouvoir se sortir de la situation, il faut convertir les champs en géométrie PostGIS. Le seul moyen que je voie pour ce faire pour le moment est de générer une chaine WKT a partir de la representation texte du champ polygon, et d'utiliser st_geometryfromtext() de postgis pour récupérer une géométrie.
C'est un peu pénible a faire car «monpolygon::text» ne renvoie pas directement du WKT, il faut faire quelques conversions et concaténations de texte pour y arriver. Mais ça doit pouvoir se faire.

Bon courage,
Vincent

Hors ligne

 

Pied de page des forums

Powered by FluxBB

- Faire un don - Contact - Mentions légales -