Je vous expose mon projet,
Je souhaiterais indiquer sur une carte google mes coordonnées. Mais il faut que je transforme 35 26.34S 057 26.64W en -35.437177,-57.442231 5 ( decimal) lisible par google.J 'ai un script ( on ma aidé pour cela ) mais celui-ci n 'est pas totalement fiable . alors je vous demande de l' aide , je précise que ceci est juste un projet perso rien de commerciale . si quelqu'un veut avoir accès au projet je vous donnerez l 'accès en messages privés. Merci d'avance
Voici le code actuel : les coordonnées sont dans position.txt
Code : Tout sélectionner
<?php
function convertDec($var) { // Sexagésimal vers décimal
$sens = substr($var,-1);
$var = substr($var, 0, strlen($var)-1);
$var = preg_replace('#([^a-z0-9]+)#i', '-', $var);
$tab = explode('-', $var);
$varD = $tab[0] + ($tab[1] / 60) + ($tab[2] / 3600);
if(in_array($sens, array('S', 'O'))){ $varD = -$varD; }
return $varD;
}
// Lecture du fichier
$fp = fopen("position.txt", "r");
while (!feof($fp)) {
$ligne = fgets($fp,1024); // récupération de la ligne
// on sépare les 2 bouts pour obtenir les latitude/longitude sexagésimal :
$ligne_array = explode(' , ', $ligne);
$sexa_latitude = $ligne_array[0]; // '34 50.34S'
$sexa_longitude = $ligne_array[1]; // '057 26.64W'
// on peut mainteant les passer par la fonction de conversion :
$deci_latitude = convertDec($sexa_latitude);
$deci_longitude = convertDec($sexa_longitude);
// TEST d'affichage
echo 'sexa : '.$sexa_latitude.' '.$sexa_longitude.'<br />';
echo 'deci : '.$deci_latitude.' '.$deci_longitude.'<br />';
echo '<br />';
}
?>