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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 29 October 2014 15:26

loic.buscoz
Juste Inscrit !
Lieu: Rumilly
Date d'inscription: 17 Apr 2013
Messages: 8
Site web

Conversion WGS84 vers RGF93 en PHP

Bonjour à toutes et à tous,

Pour les besoins d'une application sous MapguideOS, j'ai codé quelques lignes en PHP permettant de récupérer des coordonnées WGS84 passées via une URL, et de les convertir en RGF93. Si cela peut aider certains d'entre vous, voici la partie du code effectuant la conversion:

Code:

<?php 

// récupération des coordonnées
    $latitude= $_GET[latitude];
    $longitude= $_GET[longitude];    

// définition des constantes
    $c= 11754255.426096; //constante de la projection
    $e= 0.0818191910428158; //première exentricité de l'ellipsoïde
    $n= 0.725607765053267; //exposant de la projection
    $xs= 700000; //coordonnées en projection du pole
    $ys= 12655612.049876; //coordonnées en projection du pole

// pré-calculs
    $lat_rad= $latitude/180*PI(); //latitude en rad
    $lat_iso= atanh(sin($lat_rad))-$e*atanh($e*sin($lat_rad)); //latitude isométrique

//calcul
    $x= (($c*exp(-$n*($lat_iso)))*sin($n*($longitude-3)/180*PI())+$xs);
    $y= ($ys-($c*exp(-$n*($lat_iso)))*cos($n*($longitude-3)/180*PI()));

 ?>

En javascript, il faudrait utiliser Math. devant les fonctions : Math.cos(), Math.sin(), Math.atanh(), Math.exp(), Math.PI

Dernière modification par loic.buscoz (Wed 29 October 2014 15:27)


Loïc Buscoz, administrateur S.I.G. / CC Rumilly Terre de Savoie

Hors ligne

 

#2 Fri 12 December 2014 14:23

sergemorvanenib
Juste Inscrit !
Date d'inscription: 20 Feb 2008
Messages: 1

Re: Conversion WGS84 vers RGF93 en PHP

Bonjour,

J'ai exactement le problème inverse, je souhaite transformer des valeurs Latlon en RGF93 vers WGS84.
Avez vous aussi les constantes ?

Merci

Hors ligne

 

#3 Mon 15 December 2014 09:09

Dof
Participant assidu
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 317
Site web

Re: Conversion WGS84 vers RGF93 en PHP

Bonjour,
Sinon vous avez aussi des adaptations de Proj4 pour PHP
https://github.com/jsor/proj4php

edit:
extrait de l'exemple

$proj4 = new Proj4php();
$projL93 = new Proj4phpProj('EPSG:2154',$proj4);
$projWGS84 = new Proj4phpProj('EPSG:4326',$proj4);

$pointSrc = new proj4phpPoint('652709.401','6859290.946');
echo "Source : ".$pointSrc->toShortString()." in L93 <br>";

$pointDest = $proj4->transform($projL93,$projWGS84,$pointSrc);
echo "Conversion : ".$pointDest->toShortString()." in WGS84<br><br>";

Dernière modification par Dof (Mon 15 December 2014 09:12)

Hors ligne

 

#4 Tue 16 December 2014 09:16

loic.buscoz
Juste Inscrit !
Lieu: Rumilly
Date d'inscription: 17 Apr 2013
Messages: 8
Site web

Re: Conversion WGS84 vers RGF93 en PHP

Merci Dof pour le partage. C'est effectivement bien plus pratique !

Pour répondre à Serge, si vous ne souhaitez pas utiliser ce que propose Dof, voici le code inverse (fait à la va-vite, le calcul doit pouvoir être épuré. En tous cas, le résultat est correct) :


Code:

<?php 
// récupération des coordonnées
$X = $_GET[X];
$Y = $_GET[Y];

// définition des constantes
$c= 11754255.426096; //constante de la projection
$e= 0.0818191910428158; //première exentricité de l'ellipsoïde
$n= 0.725607765053267; //exposant de la projection
$xs= 700000; //coordonnées en projection du pole
$ys= 12655612.049876; //coordonnées en projection du pole


// pré-calcul
$a=(log($c/(sqrt(pow(($X-$xs),2)+pow(($Y-$ys),2))))/$n);

// calcul
$LONGITUDE = ((atan(-($X-$xs)/($Y-$ys)))/$n+3/180*PI())/PI()*180;
$LATITUDE = asin(tanh((log($c/sqrt(pow(($X-$xs),2)+pow(($Y-$ys),2)))/$n)+$e*atanh($e*(tanh($a+$e*atanh($e*(tanh($a+$e*atanh($e*(tanh($a+$e*atanh($e*(tanh($a+$e*atanh($e*(tanh($a+$e*atanh($e*(tanh($a+$e*atanh($e*sin(1))))))))))))))))))))))/PI()*180;
  
 ?>

Loïc Buscoz, administrateur S.I.G. / CC Rumilly Terre de Savoie

Hors ligne

 

#5 Fri 01 December 2017 14:09

snike
Participant actif
Date d'inscription: 29 Mar 2007
Messages: 114

Re: Conversion WGS84 vers RGF93 en PHP

Bonjour,

  J'ai essayé le code avec les coordonnées de la Tour Eiffel (2.294529579762268,48.85824127776232) je trouve -1.362778205187 , -5.9838251971327

  Savez-vous où je me trompe.

Merci par avance.

Hors ligne

 

Pied de page des forums

Powered by FluxBB