#1 Thu 23 November 2017 15:09
- Marie-Filipe
- Participant occasionnel
- Lieu: Pays de la Loire
- Date d'inscription: 15 Jul 2014
- Messages: 16
- Site web
[PostGIS] ST_transform : tolerance condition error
Bonjour à tous,
J'ai besoin de transformer mes géométries (mélange de points, lignes et polygones dans une même colonne) de Lambert 93 vers Pseudo-Mercator. J'utilise la requête suivante :
Code:
SELECT st_transform(st_setsrid(s.geometrie, 2154), 3857) AS the_geom FROM atlaspdl.sicensaisie s;
Postgis me retourne alors l’erreur suivante :
Code:
transform: couldn't project point (-1.79769e+19 -1.79769e+19 0): tolerance condition error (-20)
Toutes mes géométries sont bien valides, et leur SRID est bien 2154.
Peut-être il y a-t-il un moyen de changer la tolérance de st_transform ? Si quelqu'un avait une piste pour corriger cette erreur, elle serait la bienvenue !
P.S. ma version de postgis : 2.1
Hors ligne
#2 Thu 23 November 2017 15:23
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [PostGIS] ST_transform : tolerance condition error
Avez vous identifié la géométrie qui pose problème,
je n'y connais rien en géodésie/sys. de projection,
mais j'ai l'impression qu'un point avec des coordonnées
telles que remontées par l'erreur est complétement
en dehors des limites de RGF93 :
http://spatialreference.org/ref/epsg/rgf93-lambert-93/
Dernière modification par tumasgiu (Thu 23 November 2017 15:30)
Hors ligne
#3 Thu 23 November 2017 16:15
- Marie-Filipe
- Participant occasionnel
- Lieu: Pays de la Loire
- Date d'inscription: 15 Jul 2014
- Messages: 16
- Site web
Re: [PostGIS] ST_transform : tolerance condition error
Merci tumasgiu,
Effectivement, je n'y avait pas pensé...
J'essaye d'identifier la géométrie posant problème :
Code:
SELECT * FROM atlaspdl.sicensaisie WHERE st_astext(geometrie) = 'POINT(-1.79769e+19 -1.79769e+19)'
Mais rien ne sort, comme si cette géométrie n'était en fait pas présente !
Hors ligne
#4 Thu 23 November 2017 16:27
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [PostGIS] ST_transform : tolerance condition error
j'aurais plus écrit quelque chose du genre
Code:
SELECT * FROM atlaspdl.sicensaisie WHERE st_intersects(geometrie, st_buffer(st_makepoint(-1.79769e+19, -1.79769e+19), 10))
En jouant sur le radius du buffer.
Ou alors un truc comme çà:
Code:
SELECT * FROM atlaspdl.sicensaisie WHERE NOT st_coveredby(geometrie, st_envelope('LINESTRING(-357823.2365 6037008.6939, 1313632.3628 7230727.3772)'::geometry) )
Afin de récupérer toutes les géométries en dehors des limites.
Dernière modification par tumasgiu (Thu 23 November 2017 16:33)
Hors ligne
#5 Thu 23 November 2017 16:58
- Marie-Filipe
- Participant occasionnel
- Lieu: Pays de la Loire
- Date d'inscription: 15 Jul 2014
- Messages: 16
- Site web
Re: [PostGIS] ST_transform : tolerance condition error
La deuxième requête, avec un st_setsrid(st_envelope...., 2154), fonctionne nikel !
Et j'avais bien plusieurs géométries hors limites... oups
Merci tumasgiu !
Hors ligne