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 Wed 31 March 2010 13:47

tiolebucheron
Participant actif
Lieu: Rouen
Date d'inscription: 26 Mar 2006
Messages: 147

Postgis St_Intersect

Bonjour

Je fais une requête d'intersection postgis entre une table et des MultiPoint

SELECT proid FROM table WHERE  ST_intersects (the_geom, ST_GeometryFromText ('MULTIPOINT((323200 2457700),(493200 2439300))',27572))

et j'obtiens l'erreur suivante

NOTICE:  TopologyException: side location conflict 401354 2.45319e+06


ERREUR:  GEOS intersects() threw an error!

********** Erreur **********

ERREUR: GEOS intersects() threw an error!
État SQL :XX000


Suite à ce post http://georezo.net/forum/viewtopic.php?id=53437 j'ai fait la requête
SELECT isValid(the_geom)  FROM document_gestion_durable where isValid(the_geom)=false;

J'ai 97 lignes à false. J'ai du mal à comprendre le problème et surtout comment le résoudre.

Pouvez-vous m'éclairer?

Tio.

Hors ligne

 

#2 Wed 31 March 2010 14:13

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

Re: Postgis St_Intersect

Bonjour,

Il faut afficher les géométries en WKT pour voir le problème : polygone non fermé, limite des polygones qui se croisent, trou en bordure de limite. Normalement l'import aurait dû planté. Mais sans informations supplémentaires impossible de trouver le problème wink

Tu peux utiliser ST_IsValidReason pour déterminer quelle est la source d'erreur. Version 1.4 de PostGIS seulement !

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

 

#3 Wed 31 March 2010 17:47

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 617

Re: Postgis St_Intersect

Bonjour,
après avoir pris connaissance des raisons d'invalidité des geometries, tu peux tester cette fonction (à rajouter)

http://www.sogis1.so.ch/sogis/dl/postgi … ometry.sql


Pascal PLUVINET

Hors ligne

 

#4 Wed 31 March 2010 19:14

tiolebucheron
Participant actif
Lieu: Rouen
Date d'inscription: 26 Mar 2006
Messages: 147

Re: Postgis St_Intersect

Ok merci à tous les deux. La requête d'Yves est lancée depuis 5 heures et j'attends toujours le résultat. Je vous tiens au courant.

Merci Tio

Hors ligne

 

#5 Thu 01 April 2010 15:16

tiolebucheron
Participant actif
Lieu: Rouen
Date d'inscription: 26 Mar 2006
Messages: 147

Re: Postgis St_Intersect

Les requêtes ne sont toujours pas terminées. Je me demande si c'est normal?

Select ST_IsValidReason(the_geom) from document_gestion_durable where isValid(the_geom)=false 22120000ms
et
Select ST_IsValidReason(the_geom) from document_gestion_durable 82845000ms.

A votre Avis ??

Tio

Hors ligne

 

#6 Thu 01 April 2010 17:39

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Postgis St_Intersect

tiolebucheron a écrit:

Les requêtes ne sont toujours pas terminées. Je me demande si c'est normal?

Select ST_IsValidReason(the_geom) from document_gestion_durable where isValid(the_geom)=false 22120000ms
et
Select ST_IsValidReason(the_geom) from document_gestion_durable 82845000ms.

A votre Avis ??

Tio


Bonjour,

Grosse volumétrie des données ? ou objets tres complexes en base ?
IsValid scanne tous les objets et pour chacun les analyse de facon topologique. Ca peut donc prendre du temps.

Nicolas

Hors ligne

 

#7 Fri 02 April 2010 19:28

tiolebucheron
Participant actif
Lieu: Rouen
Date d'inscription: 26 Mar 2006
Messages: 147

Re: Postgis St_Intersect

Il y a 2200 polygones dont une bonne moitié multiploygon.

il y a 96 objets qui déconnent. Si les requête ne sont pas terminé lundi je le ferai ligne par ligne. Merci Je vous tiens au courant

Hors ligne

 

#8 Fri 02 April 2010 22:19

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

Re: Postgis St_Intersect

bizarre que la moitié des données soient en polygone et d'autres en simple !

un update des géométrie simple en multi serait déjà une bonne chose (multi(the_geom) WHERE issimple(the_geom)=false)

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 09 July 2010 14:28

tiolebucheron
Participant actif
Lieu: Rouen
Date d'inscription: 26 Mar 2006
Messages: 147

Re: Postgis St_Intersect

Bonjour

J'ai avancé le sujet et vous remercie de ces informations je corrige les problèmes au et à mesure.

Toutefois, je vous joins un fichier image qui est un multipolygon jointif en un point. La requête isValidReason retourne "Ring Self-intersection[421847.148556714 2458020.34076502]".

Quel votre analyse sur ce type de problème?

Merci de votre aide Tio


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#10 Fri 09 July 2010 14:53

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Postgis St_Intersect

tiolebucheron a écrit:

Bonjour

J'ai avancé le sujet et vous remercie de ces informations je corrige les problèmes au et à mesure.

Toutefois, je vous joins un fichier image qui est un multipolygon jointif en un point. La requête isValidReason retourne "Ring Self-intersection[421847.148556714 2458020.34076502]".

Quel votre analyse sur ce type de problème?

Merci de votre aide Tio


Bonjour,
Comme l'erreur l'indique, il y a une self intersection, sur le point indiqué:
OGC indique que les elements d'un multipolygone ne peuvent se toucher qu'en un point fini.
Dans votre cas, il doit y avoir une vraie intersection, due aux erreurs d'arrondi des coordonnées.

Deux solutions (combinables, meme):

1°) Reduire la précision des coordonnées des geometries: telles qu'indiquées dans votre mail, ces coordonnées ont l'air d'etre métrique. Garder 5 ou 6 decimales ne sert a rien, a moins que les données aient ete numérisées avec une précision... diabolique.

Idealement, le fournisseur de données indique la précision de génération de ces données.

La methode snapToGrid(geom, precision), permet de forcer un certain nombre de décimales. (ou un nombre entier, sur des données métriques, cela représente une précision au metre)

2°) Corriger les polygones invalides en lancant un buffer(geometry, 0) sur ces polygones (et reverifier la validité des polygones).

Nicolas

Hors ligne

 

Pied de page des forums

Powered by FluxBB