Services : Actualité Emploi Blog Forum Flux
Formation Trafic : Référencement Liens sponsorisés Affiliation Ecommerce Nom de domaine E-réputation Marketing Mobile Black Hat
Formation Technique : Performance Web Html Css Sql Curl Asp Dotnet Php Ajax Wordpress Twitter Google Analytics

Forum Oseox
Oseox

Base de données des villes, régions, départements de France

Forum Référencement et Trafic
Nous sommes le Mar 21 Nov 2017 00:01

Heures au format UTC [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet
Auteur Message
MessagePosté: Lun 8 Déc 2008 00:34 
Administrateur
Avatar de l’utilisateur
Article : Base de données des villes, régions, départements de France et carte interactive
Catégorie : Développement Web

Vous pouvez laisser ici vos commentaires concernant l'article du blog : Base de données des villes, régions, départements de France et carte interactive


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 8 Déc 2008 07:25 
Comme spécifié dans l'article, il est possible, à partir de coordonnées, de connaitre la distance entre 2 points.
Exemple ici : http://www.galle.fr/dev/latitude-longitude.php
Il y a plusieurs facons de calculer les distances, j'ai utilisé la plus simple pour cette page.
Bien que ca ne soit pas la plus juste pour de très longues distances (je vous laisse deviner pourquoi), elle s'accommode très bien à des distances 'nationales'.


Le script de la page ci-dessus, ci-dessous :
Code:
<title>Calcul de distance entre latitudes et longitudes</title>

<h2>Calcul de distance entre latitudes et longitudes</h2>
<?

foreach($_POST as $k => $v)
   $_POST[$k] = str_replace(",",".",$v);

$lat1 = deg2rad($_POST['lat1']);
$lon1 = deg2rad($_POST['long1']);
$lat2 = deg2rad($_POST['lat2']);
$lon2 = deg2rad($_POST['long2']);

$dlat = $lat2-$lat1;
$dlon = $lon2-$lon1;
$R = 6371.03;

$a = pow((sin($dlat/2)),2) + cos($lat1) * cos($lat2) * pow((sin($dlon/2)),2);
$c = 2*atan2(sqrt($a),sqrt(1-$a));
$d = $R*$c;

$d = number_format($d,2);

echo $d;


/*
foreach($_POST as $k => $v)
echo "<br>".$k."-->".$v;

*/
foreach($_POST as $k => $v)
   $_POST[$k] = str_replace(".",",",$v);

?>
<form name=truc method=POST>


<p>
<u>Point 1:</u>
<br>Latitude 1: <input name="lat1" value="<?=$_POST['lat1']?>"> Longitude 1: <input name="long1" value="<?=$_POST['long1']?>"></p>
<u>Point 2 :</u>
<br>
Latitude 2: <input name="lat2" value="<?=$_POST['lat2']?>"> Longitude 2: <input name="long2" value="<?=$_POST['long2']?>"></p>

<input name="result" value="<?=str_replace(array(",","."),array(" ",","),$d)?> km">
<input type=submit name=submit value=submit>
</form>

<hr>
<font size=1>
Pour info :
<br>
<p>Lyon :
<br> - Latitude :  45.75
<br> - Longitude : 4.85
<p>Villeurbanne :
<br> - Latitude :  45.766667
<br> - Longitude : 4.883333
<p>Paris :
<br> - Latitude :  48.866667
<br> - Longitude : 2.333333
<p>Marseille : 
<br> - Latitude :  43.3
<br> - Longitude : 5.4

<p><i>Histoire de voir les longitudes négatives...</i>

<p>Rennes :
<br> - Latitude :  48.083333
<br> - Longitude : -1.683333

<p>Quimper : 
<br> - Latitude :  48
<br> - Longitude : -4.1

<p>Brest : 
<br> - Latitude :  48.4
<br> - Longitude : -4.483333 





Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 8 Déc 2008 10:16 
merci Kiemtso pour le code (plutot pointu)

je n'ai jamais pensé à calculer moi même la distance entre deux points.
Je suppose que c'est pas la plus juste pour les longue distance car c'est à vol d'oiseaux ?

Cependant l'API de googlemap permet de calculer un itinéraire routier et d'obtenir un plan de route avec une distance plus juste un peu comme mappy.

une autre API qui a vu le jour y a pas longtemps est celle d'orange qui propose de géolocaliser un téléphone portable. seul truc que je trouve dommage et qu'il faut une confirmation par sms (mais d'un autre coté c'est normal lol). Cette API permet de localiser un téléphone en utilisant la triangulation des bornes du réseau téléphonique sans fil. (Avec des erreurs plus ou moins élevé) peut être un prochain tuto sur cette API...


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 8 Déc 2008 13:06 
Alors en fait, ca n'est pas le problème du 'vol d'oiseau', mais plutot le problème que :
si tu prends un ballon de foot, tu mets 2 points sur ce ballon.
Le ballon étant courbe, la distance entre les 2 points 'traverse' le ballon.
Il faudrait prendre la distance, et ajuster avec la 'courbure' de la Terre.
Ce que ne fait pas le programme.

Ceci dit, ce programme marche très bien pour de la géolocalisation d'internautes : Un site de rencontres, par exemple, ou (pour le cas où je l'ai fais..) : la géolocalisation de bannières publicitaires : Tu affiches les pubs de 'vendeurs de machin' les plus proches de l'internaute, par exemple.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 8 Déc 2008 13:32 
un petit lien qui pourras surement aider pour ce genre de calcul http://www.lpo-anjou.org/baguage/Calcul ... ce_IGN.doc


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 8 Déc 2008 17:39 
Voilà !
Sauf que... la Terre n'est pas ronde non plus, mais.. ovale :D
Bon, comme ca compliquait les calculs, on s'était arrêté là.
Soit des erreurs de l'ordre de 0.1 %, ce qui reste correct comme approximation (à mon humble avis)


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 8 Déc 2008 21:47 
Administrateur
Avatar de l’utilisateur
Merci pour ce premier article Shaolin.

et pour le complément Kiemtso.

J'ai tout installé et cela fonctionne très bien.


Haut
 Profil Envoyer un e-mail  
 
MessagePosté: Lun 1 Fév 2010 08:25 
Bonjour, j'ai téléchargé ce superbe "script" (je remercie d'ailleurs son auteur).

J'ai cependant une question :
Je l'ai intégré dans un formulaire d'envoi, maintenant je souhaites récupérer la variable afin de l'intégrer dans mon e-mail, comment puis-je faire ?

Merci à ceux qui m'aideront.
Cordialement.


Haut
 Profil Envoyer un e-mail  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 

Heures au format UTC [ Heure d’été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Abonnez-vous au flux RSS

Blog

Forum

Offres d'emploi

Copyright : Moteur, traduction et optimisation
Merci de votre visite sur le forum Oseox