Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 18 April 2019 16:03

Femtome0903
Juste Inscrit !
Date d'inscription: 11 Feb 2019
Messages: 3

ArcGis Pro - Requete Spatiale / ERROR parse error - invalid geometry

Bonjour,

En lien avec mon projet ( niveau débutant ) basé sur PostgresSQL / PgAdmin et Arcgis pro ( et son type st_geometry au lieu de geom)  ,

j'ai actuellement un problème sur une de mes requêtes basée sur le calcul d'une surface d'intersection,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: "100000000000000000000000110F" <-- parse error at position 28 within geometry

ce message d'erreur est généré à partir de la requête suivante :

select
sum(       
(st_area
(st_transform
(st_geomfromtext
(st_astext
(st_intersection(pa.shape,s.shape)::varchar),3857),2154
-- ,(pa.shape)::varchar,3857),2154 -- table 1
-- (i.shape)::varchar,3857),2154 -- table intersection temp
))))
from
table1 pa,table2 s  where pa.pera_id=50
-- , table_intersection i




Constats :
- je ne peux modifier mes tables dans leur état actuel ( colonne , format,.. ) , je n'en ai pas le droit.
- l'intersection ne fonctionne pas uniquement , la ligne basée sur pa.shape ou sur le contenu de l'intersection ( créer dans une autre table) fonctionne
Cependant je ne peux pas me fier à cette stratégie car je dois créer le moins de contenu possibles dans mon schéma
- pa.shape est de type POLYGON et l'intersection en MULTIPOLYGON, un rapport avec mon problème peut etre ?
- Me renvoie un résultat si tounée sur Qgis et ses champs geom mais arcgis pro imposé ( et je ne sais pas encore si le résultat est bon ou non )
- Autre détail, sur le site d'ArcGis  il  est spécifié qu'il faut utiliser st_geometry au lieu de st_geomfromtext mais les 2 renvoient la meme erreur

Merci d'avance si vous parvenez à me tirer d'affaire smile

Dernière modification par Femtome0903 (Thu 18 April 2019 16:14)

Hors ligne

 

#2 Thu 18 April 2019 17:08

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1129

Re: ArcGis Pro - Requete Spatiale / ERROR parse error - invalid geometry

Salut,

jamais utilisé arcgispro mais quelques remarques :

*Si Postgis et Arcgis sont installé sur votre base pg,
(je pense que c'est possible), utilisez le nom pleinement
qualifié de vos fonctions et type, (exemple : sde.st_intersection)
pour être sur d'utiliser les bon(ne)s.

* Je ne comprends pas trop pourquoi vous transformez le résultat de votre
intersection en texte, qui est je pense du type st_geometry, pour le retransformer
en st_geometry. D'autant que je pense que l'erreur vient de là,  le cast de votre intersection
en varchar, renvoie une chaine  de la représentation de la géomètrie au format WKB,
et st_geometryfromtext attend une chaine de sa représentation au format WKT.

Dernière modification par tumasgiu (Fri 19 April 2019 09:49)

Hors ligne

 

#3 Thu 18 April 2019 17:29

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1129

Re: ArcGis Pro - Requete Spatiale / ERROR parse error - invalid geometry

Si le but de cette conversion geometry>text>geometry
est d'attribuer le SRID 3857 à votre intersection,
je pense que ce n'est pas nécessaire :

Code:

SELECT
    sum((st_area (st_transform (st_geometry (st_intersection (pa.shape, s.shape), 3857), 2154)))
        FROM table1 pa, table2 s
    WHERE
        pa.pera_id = 50

A noter que si le SRID 3857 est déja assigné aux colonnes shape de vos deux tables,
ca n'est pas nécessaire et vous pouvez supprimer le st_geometry(..., 3857).

Dernière modification par tumasgiu (Thu 18 April 2019 17:40)

Hors ligne

 

Pied de page des forums

Powered by FluxBB