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 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: 1159

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: 1159

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

 

Pied de page des forums

Powered by FluxBB