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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Le portail retrouve peu à peu ses fonctionnalités.

Les listes ne fonctionnent pas mais nous mettons tout en oeuvre pour les réactiver rapidement.

Si vous avez pris contact avec l'association (petite enveloppe en haut/droite), sachez que nous lisons vos messages mais que les mails ne partent pas (#bug).

Ne soyez pas surpris si vous ne recevez pas de réponse.

#1 Wed 29 October 2014 15:26

loic.buscoz
Membre
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
Membre
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
Membre
Lieu: Grenoble
Date d'inscription: 28 Oct 2009
Messages: 315
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
Membre
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
Membre
Date d'inscription: 29 Mar 2007
Messages: 108

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

Partagez  |