Vous n'êtes pas identifié(e).
Bonjour,
je rencontre un problème en lien avec ma requête sql sous arcgis pro( et son type st_geometry au lieu de geom) basé sur le calcul d'une surface avec n paramètres puis reprojeté d'un srid à un autre ; le message d'erreur est le suivant :
ERROR: ERREUR: parse error - invalid geometry HINT: "FC" <-- parse error at position 2 within geometry État SQL :XX000
ce message d'erreur est généré à partir de la requête suivante :
sum(
(st_area
(st_transform
(st_geomfromtext
(st_astext
(st_intersection(pa.shape,s.shape)::varchar),3857),2154
))))
from table1 pa, table2 s
where( quelques critéres)
and st_intersects(pa.shape,s.shape)
and st_intersection(pa.shape,s.shape)::varchar like 'FC%' -- ligne test
au préalable, à quoi correspond ce invalid geometry HINT sur ce fameux " FC" ? , a ceci :
nom zone st_intersection
zone de ... FC0700000801000008010000110F0000A01F0000010000009C83A7A3A10C84D3.... v
A savoir que le problème sera le même avec toutes autres géométries si j'enleve la clause st_intersection like 'fc' dans le where , là c’était juste pour mettre en évidence un résultat ciblé.
Les documentations trouvées sur le web tournent pour la plupart sur le fait de devoir modifier la table mais ça ne sera pas possible en ce qui me concerne. Par ailleurs , la même requête renvoie au moins des résultats quand je travaille sous Postgres / Qgis ( et arcgis pro imposé).
Une personne aurait t-elle une idée à proposer ?
Merci d'avance
Dernière modification par femtome0903 (18/04/2019 13:17:44)
Hors ligne
Je re actualise le post :
J'ai trouvé une piste puisque que j'ai reussi à insérer la geometrie de l'intersection d'une autre maniére :
en creant une table pour l'ajouter et en l'insérant dans cette requete :
round(sum(st_area(i.shape))) as surf_3857_intersection,
round(
sum
(st_area
(st_transform
(st_geomfromtext
(st_astext(i.shape)::varchar,3857)
,2154)
))) as surf_2154_intersection
from
intersection i
et en enlevant le st_intersection. A partir de ça je me suis également rendu compte ( avec la formule st_astext uniquement que la geometrie de mon intersection est de type MULTIPOLYGON contrairement à mes deux tables de base qui sont de type POLYGON. est-til possible que le type MULTIPOLYGON pose probléme ?
Hors ligne
C'est à priori un message d'erreur vous disant que le contenu de la geometry est invalide, l'erreur étant remonté durant le parsing des données. Le "FC" est le début du contenu ayant généré l'erreur, tronqué à la position de l'erreur (position 2, donc 2 caractères).
Pour être clair, le problème vient de st_intersects(pa.shape,s.shape) ou de st_intersection(pa.shape,s.shape)::varchar ou de st_intersection(pa.shape,s.shape)::varchar like 'FC%' ?
Julien.
https://rjuju.github.io/
Hors ligne