#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: 1554
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
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
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.
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
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: 1554
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