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 Thu 23 August 2012 09:25

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

[ORACLE] LambertII -> WGS84

Bonjour,
Tout d'abord, je m'excuse par avance des termes imprécis que je pourrais employer, mais je ne suis pas géomaticien.

Dans notre base oracle spatial, j'ai une table de points d'intérêt la géométrie est renseignée mais pas le SRID (mais c'est du lambertII). J'ai besoin d'extraire les longitude, latitude de ces points en WGS84 sans passer par un outil type FME.

J'ai essayé de m'appuyer sur les fonctions d'oracle spatial, pour ne pas ré-implémenter d'algorithme de reprojection, mais ca n'a pas l'air de donner des résultats corrects:

Code:

select geom.x, geom.y FROM 
(SELECT SDO_CS.TRANSFORM(SDO_GEOMETRY(EP.GEOM.Get_WKB(),27572), 4326) as geom FROM PREF.EQUIPUB_SITU_P EP) a,
TABLE(sdo_util.getvertices(a.geom)) geom;

Code:

SDO_GEOMETRY(EP.GEOM.Get_WKB(),27572)

me permet de forcer le SRID qui est null dans la table originale

en résultat, j'obtiens

Code:

-0,443158855343006    29,4584470146476
-0,442982215303193    29,4583424490123
-0,446654042835161    29,4566315808056
-0,446022800671013    29,4172478761847
-0,412203041922734    29,4617245351124
-0,444188645359609    29,4580168621227
-0,444439020106784    29,4576550082931
-0,283690893817861    29,4275589623083
-0,275644200200317    29,432260372035
-0,269476594043061    29,4226431857737
-0,270992140595447    29,4237092320143

avez-vous une idée de ce qui ne va pas?
Merci d'avance pour votre aide.

Hors ligne

 

#2 Thu 23 August 2012 11:30

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: [ORACLE] LambertII -> WGS84

Bonjour,

En quoi les données ne sont pas correctes ? Elles ne sont pas au bon endroit ?

Vous pourriez nous donner un extrait des données en LII ?

Merci

Nicolas

PS. vous avez raison de ne pas reimplementer les fonctions de reprojection: Oracle sait gérer tous les systèmes et a refaire soi-meme, ce doit etre un travail colossal !

Hors ligne

 

#3 Thu 23 August 2012 13:26

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

Re: [ORACLE] LambertII -> WGS84

Bonjour,
Non effectivement, elles ne semblent pas du tout au bon endroit.
Pour extraire les coordonnées en lambert II, j'utilise la meme requete mais sans la reprojection:

Code:

select geom.x, geom.y FROM (SELECT SDO_GEOMETRY(EP.GEOM.Get_WKB(),27572) 
as geom FROM PREF.EQUIPUB_SITU_P EP) a, TABLE(sdo_util.getvertices(a.geom)) geom;

ce qui me donne

Code:

292510,140000000013969838619232177734375    253798,380000000004656612873077392578125
292527,53000000002793967723846435546875    253785,609999999986030161380767822265625
292148,6699999999837018549442291259765625    253602,3500000000058207660913467407226563
292036,25    249050
295654,140000000013969838619232177734375    254056,5
292404,109999999986030161380767822265625    253752,7200000000011641532182693481445313
292377,1799999999930150806903839111328125    253711,8999999999941792339086532592773438
308501,3099999999976716935634613037109375    249622,2900000000081490725278854370117188
309335,0800000000162981450557708740234375    250135,6900000000023283064365386962890625
309918,3400000000256113708019256591796875    249001,7200000000011641532182693481445313
309769,53000000002793967723846435546875    249130,48999999999068677425384521484375
309833,369999999995343387126922607421875    249172,0499999999883584678173065185546875
310968,900000000023283064365386962890625    249524,7099999999918509274721145629882813
310057,21999999997206032276153564453125    249866,9500000000116415321826934814453125
311625,76000000000931322574615478515625    248012,2000000000116415321826934814453125
311613,0200000000186264514923095703125    247998,7200000000011641532182693481445313

Ces coordonnées me semblent correctes puisqu'elles se situent autour de Nantes.

les coordonnées après projection devraient être autour de
47.2 ,-1.5 en long/lat

Walter

Hors ligne

 

#4 Thu 23 August 2012 13:36

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: [ORACLE] LambertII -> WGS84

Bonjour,

Le code 27572 est du lambert 2 étendu mais ces coordonnées ne sont pas du Lambert 2 étendue. À la rigueur du Lambert 2 carto dont je ne me souviens pas du code (27562 ?)

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Thu 23 August 2012 13:45

Loic_GR
Moderateur
Lieu: Besancon
Date d'inscription: 12 May 2011
Messages: 1017
Site web

Re: [ORACLE] LambertII -> WGS84

Yves a écrit:

Bonjour,

Le code 27572 est du lambert 2 étendu mais ces coordonnées ne sont pas du Lambert 2 étendue. À la rigueur du Lambert 2 carto dont je ne me souviens pas du code (27562 ?)

Y.


Je confirme c'est bien 27562


Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com

Hors ligne

 

#6 Thu 23 August 2012 14:03

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

Re: [ORACLE] LambertII -> WGS84

Bonjour,
effectivement, ca semble etre du 27562 Quand je fais la manip avec FME, j'ai les coordonnées suivantes

Code:

LONG_WGS84    LAT_WGS84    X_LAMB2    Y_LAMB2
-1.519500648378    47.191078642308    307918.59    250645.08
-1.578281174553    47.243458892970    303759.78    256680.71
-1.548383825433    47.301276204797    306337.77    262987.88
-1.562682655083    47.225939340745    304842.59    254676.89
-1.557927263627    47.231061201539    305230.45    255227.71
-1.558278353816    47.220884172047    305147.87    254099.1
-1.558417184558    47.220802653175    305136.92    254090.57
-1.532686020541    47.207541350119    307010.72    252521.98
-1.532665395513    47.208038582969    307015    252577.11
-1.554680043572    47.218993840880    305409.65    253875.73
-1.649757017739    47.214092136223    298190.32    253692.23
-1.392587667685    47.297077275402    318083.12    261951.19
-1.486662861564    47.251180859039    310728.75    257196.83
-1.574210987020    47.261911357819    304169.52    258714.1
-1.607433490097    47.203564724432    301333.27    252361.79
-1.538558875335    47.195243267938    306499.01    251178.46
-1.579796182677    47.202671914226    303419.45    252158.02
-1.526041033175    47.287547987477    307950.32    261380.37
-1.512801461839    47.240830971179    308696.34    256144.2
-1.577288071260    47.259619518833    303924.27    258471.23
-1.512467350981    47.260573371679    308829.02    258334.98
-1.559021392392    47.222720864725    305101.78    254305.81
-1.543612411816    47.212766942038    306212.69    253142.95
-1.567240496310    47.254388302845    304654.85    257852.62
-1.567441680146    47.254424185846    304639.84    257857.36
-1.522996238699    47.225298338340    307840.73    254457.45
-1.565337055977    47.205971281743    304531.7    252469.88
-1.565759376768    47.205757930039    304498.57    252447.78
-1.563397670965    47.205084988891    304673.55    252364.19

je fais une projection de NTF.Lambert-2 (National Geographic Institute, France, LAMBERT 2 (CENTRE) (EPSG #27562)) vers LL84 (WGS84 Lat/Long, Degrees, -180 ==> +180 (EPSG #4326))

cependant, les modifications sont marginales

Hors ligne

 

#7 Thu 23 August 2012 14:22

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: [ORACLE] LambertII -> WGS84

Bonjour,

Quelle est la distance entre les points reprojetés et ceux attendus ?

Nantes, selon wikipedia se situe à 47° 13′ 05″ Nord et 1° 33′ 10″ Ouest soit 47.8,-1.5.

Les données sont elles trop au sud ?

47.2 ,-1.5 en long/lat


Si c'est Nantes en France, c'est l'inverse : http://toolserver.org/~geohack/geohack. … _region:FR

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#8 Thu 23 August 2012 15:38

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

Re: [ORACLE] LambertII -> WGS84

Bonjour,
En faisant la projection avec FME, j'obtiens bien le résultat souhaité (tous les point sont autour de nantes), mais en essayant de faire cette même projection avec oracle, j'obtiens des points autour de
29,45 / -0,44 (et non 47.8 / -1.5). Je ne sais pas trop comment calculer la distance entre ces 2 points mais ils ne sont pas du tout à coté.
Je pense donc que ma requête qui fait la preprojection est incorrecte.
Si quelqu'un a une idée, je suis preneur.

Hors ligne

 

#9 Thu 23 August 2012 16:09

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

Re: [ORACLE] LambertII -> WGS84

Je me rapproche de la solution. Effectivement, c'est bien le SRID du lambertII qui était incorrect en le remplaçant par 27562, c'est nettement mieux (je me rapproche de nantes).

j'ai pris un exemple:
au départ, j'ai en lambert-2 (x=304842.59    et y=254676.89). FME me donne long_wgs84=-1.562682655083 et lat_wgs84=47.225939340745

ma requête:

Code:

select geom.x, geom.y FROM (SELECT SDO_CS.TRANSFORM(SDO_GEOMETRY(2001,27562,SDO_POINT_TYPE(307918.59,250645.08,NULL),NULL,NULL), 4326) 
as geom FROM dual) a, TABLE(sdo_util.getvertices(a.geom)) geom;

me donne quant à elle

long_wgs84=-1,258940674838 et lat_wgs84=47,1880141461779

Dernière modification par walter (Thu 23 August 2012 16:11)

Hors ligne

 

#10 Fri 24 August 2012 14:21

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

Re: [ORACLE] LambertII -> WGS84

bonjour,
je suis sur une base oracle spatiale en version 10.2.0.4.
Quelqu'un pourrait-il me donner le résultat de la requête en 11gR2?

Code:

select pt.x, pt.y FROM (SELECT SDO_CS.TRANSFORM(SDO_GEOMETRY(2001,27592,SDO_POINT_TYPE(307918.59,250645.08,NULL),NULL,NULL), 4326) as geom FROM dual) a , TABLE(sdo_util.getvertices(a.geom)) pt;

Merci par avance

Hors ligne

 

#11 Fri 24 August 2012 14:56

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

Re: [ORACLE] LambertII -> WGS84

en 11gR2 j'ai le résultat suivant:

Code:

         X          Y
---------- ----------
-1,5194829 47,1910679

c'est bien un bug oracle

Hors ligne

 

#12 Fri 24 August 2012 15:18

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: [ORACLE] LambertII -> WGS84

Ou bien une mauvaise utilisation des SRID, en faisant la confusion entre codes EPSG et SRID:

Oracle génère ses propres SRID et ne connait pas (ou peu dans la 10) les codes EPSG.
Je vous invite a lire cette discussion (http://georezo.net/forum/viewtopic.php?id=80729), où la correspondance EPSG <-> SRID Oracle est donnée.

Votre requete devrait s'ecrire:

Code:

select pt.x, pt.y FROM (
  SELECT SDO_CS.TRANSFORM(
    SDO_GEOMETRY(2001,41015,SDO_POINT_TYPE(307918.59,250645.08,NULL),NULL,NULL), 8307) as geom FROM dual) a , 
    TABLE(sdo_util.getvertices(a.geom)) pt;

                X                                    Y
-------------------        --------------------
-1.519482693321    47.191067907012

41015 est le SRID Oracle du Lambert II et 8307 celui du système geocentrique WGS 84

Nicolas

Hors ligne

 

#13 Fri 24 August 2012 15:59

walter
Juste Inscrit !
Date d'inscription: 23 Aug 2012
Messages: 8

Re: [ORACLE] LambertII -> WGS84

Génial,
ca fonctionne parfaitement.
Merci pour l'aide apportée.
Walter

Hors ligne

 

#14 Tue 28 August 2012 10:27

Jean-Marie Arsac
Invité

Re: [ORACLE] LambertII -> WGS84

select pt.x, pt.y FROM (SELECT SDO_CS.TRANSFORM(SDO_GEOMETRY(2001,27592,SDO_POINT_TYPE(307918.59,250645.08,NULL),NULL,NULL), 4326) as geom FROM dual) a , TABLE(sdo_util.getvertices(a.geom)) pt;


X     Y
-1,51948285996551     47,1910679072507

--
Jean-Marie Arsac
AZIMUT
http://www.azimut.fr

 

Pied de page des forums

Powered by FluxBB