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

Printemps des cartes 2024

#1 Fri 05 August 2016 17:21

grego
Juste Inscrit !
Date d'inscription: 10 Jan 2008
Messages: 6

Selection coordonnées début de lignes

Bonjour,

Dans Oracle, je souhaiterais via Sqldeveloper, faire une requête qui peut paraitre simple mais que je n'arrive pas à faire...

J'ai une table AV_GL_ARRETE contenant des lignes et je souhaiterais avoir deux colonnes avec les coordonnées X et Y en WGS84 du point de départ de la ligne.

Je connais une formule permettant de récupérer le champ géométrie avec seulement la coordonnée X, Y de départ :
SELECT
  A.id_arrete,
  SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE)
FROM AV_GL_ARRETE a ;


Si la donnée était une couche de points la formule serait la suivante :

SELECT
  A.id_arrete,
  SDO_CS.TRANSFORM(A.GEOMETRIE,8307).SDO_POINT.X,
  SDO_CS.TRANSFORM(A.GEOMETRIE,8307).SDO_POINT.Y
FROM AV_GL_ARRETE a ;


L'idéal serait d'imbriquer l'une dans l'autre mais cela dépasse mes compétences en oracle...
Si vous avez une idée, ça m'éviterais de tourner en rond.

Merci d'avance pour vos réponses

Bonne soirée et bon week-end à tous

Hors ligne

 

#2 Thu 01 September 2016 11:09

hichamfstgm
Participant occasionnel
Lieu: Goulmima
Date d'inscription: 11 May 2010
Messages: 48

Re: Selection coordonnées début de lignes

Bonjour

Je connais une formule permettant de récupérer le champ géométrie avec seulement la coordonnée X, Y de départ :
SELECT
  A.id_arrete,
  SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE)
FROM AV_GL_ARRETE a ;


A tester ceci

SELECT A.id_arrete, SDE.ST_GEOMETRY (SDE.ST_ASTEXT (SDE.ST_STARTPOINT (GEOMETRIE)),8307)
    AS START_POINT
FROM AV_GL_ARRETE

Hicham
CDT

Hors ligne

 

#3 Wed 14 September 2016 15:48

grego
Juste Inscrit !
Date d'inscription: 10 Jan 2008
Messages: 6

Re: Selection coordonnées début de lignes

Bonjour,

Merci pour votre réponse.
J'ai essayé la formule mais j'ai eu l'erreur suivante :

ORA-02315: nombre d'arguments non valide pour constructeur par défaut
02315. 00000 -  "incorrect number of arguments for default constructor"
*Cause:    The number of arguments specified for the default constructor
           doesn't match the number of attributes of the object type.
*Action:   Specify the correct number of arguments for the default
           constructor and retry the operation.
Erreur à la ligne 1, colonne 20

Sigistement

Hors ligne

 

#4 Wed 14 September 2016 16:42

grego
Juste Inscrit !
Date d'inscription: 10 Jan 2008
Messages: 6

Re: Selection coordonnées début de lignes

Bonjour,

J'ai imbriqué les deux requêtes comme ceci :

SELECT
  A.id_arrete,
  SDO_CS.TRANSFORM((SELECT SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE) FROM AV_GL_ARRETE where a.id_av_gl_arrete=AV_GL_ARRETE.id_av_gl_arrete),8307).SDO_POINT.X as X,
  SDO_CS.TRANSFORM((SELECT SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE) FROM AV_GL_ARRETE where a.id_av_gl_arrete=AV_GL_ARRETE.id_av_gl_arrete),8307).SDO_POINT.Y as Y
FROM AV_GL_ARRETE a ;

Mais ça renvoi des lignes nulles pour X et Y

J'ai regardé l'objet géométrique renvoyé par la première requête GEOM_SEGMENT_START_PT(GEOMETRIE) ça renvoit bien un champ géométrie avec un seul point
ex : MDSYS.SDO_GEOMETRY(2001,2154,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1,1),MDSYS.SDO_ORDINATE_ARRAY(842885.223464376,6370456.00139392))

Sinon j'ai essayé le SDE.ST_ASTEXT mais je ne pense pas que cela fonctionne correctement dans Oracle

Merci

Bonne soirée

Hors ligne

 

Pied de page des forums

Powered by FluxBB