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 Wed 29 October 2014 15:26

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

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 du Canton de Rumilly

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: 7

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 du Canton de Rumilly

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