[Google Maps API] - Calculer une distance à vol d'oiseau

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

PigeonDeCombat
WRInaute discret
WRInaute discret
 
Messages: 206
Inscription: 6 Aoû 2006

[Google Maps API] - Calculer une distance à vol d'oiseau

Message le Sam Sep 02, 2006 9:31

Bonjour,

Voici un petit Javascript qui vous permettra de calculer une distance entre deux GPoint(). Très utile quand on souhaite n'afficher que les markers dans un rayon de X km.

Code: Tout sélectionner
function LatLong(degLat, degLong) {
     this.lat = LatLong.llToRad(degLat);
     this.lon = LatLong.llToRad(degLong);
   }    
   
   LatLong.llToRad = function(brng) {
     if (!isNaN(brng)) return brng * Math.PI / 180; 
   
     brng = brng.replace(/[\s]*$/,'');               
     var dir = brng.slice(-1).toUpperCase();         
     if (!/[NSEW]/.test(dir)) return NaN;           
     brng = brng.slice(0,-1);                       
     var dms = brng.split(/[\s:,°º′\'″\"]/);         
     switch (dms.length) {                           
       case 3:                                       
         var deg = dms[0]/1 + dms[1]/60 + dms[2]/3600; break;
       case 2:                                       
         var deg = dms[0]/1 + dms[1]/60; break;
       case 1:                                       
         if (/[NS]/.test(dir)) brng = '0' + brng;   
         var deg = brng.slice(0,3)/1 + brng.slice(3,5)/60 + brng.slice(5)/3600; break;
       default: return NaN;
     }
     if (/[WS]/.test(dir)) deg = -deg;               
     return deg * Math.PI / 180;                     
   }
   
   LatLong.distHaversine = function(p1, p2) {
     var R = 6371;
     var dLat  = p2.lat - p1.lat;
     var dLong = p2.lon - p1.lon;

     var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
             Math.cos(p1.lat) * Math.cos(p2.lat) * Math.sin(dLong/2) * Math.sin(dLong/2);
     var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
     var d = R * c;
   
     return d;
   }


Exemple :
Code: Tout sélectionner
  startPoint = new LatLong(lat, lng);
  endPoint = new LatLong(lat, lng);
  var dist = LatLong.distHaversine(startPoint, endPoint); // exprimé en Km.


Bonne continuation...


TOMHTML
WRInaute accro
WRInaute accro
 
Messages: 3250
Inscription: 25 Aoû 2004

Message le Sam Sep 02, 2006 10:05

je teste pas mais je suppose que ça marche
donc je recommande
merci ;)


mowmow
WRInaute impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

Message le Sam Sep 02, 2006 14:10

Je t'aurais bien proposé de poster dans ce sujet : http://www.webrankinfo.com/forums/viewtopic_58093.htm mais ca intéresse pas grand monde donc bon :D

Merci quand même, je vais tester sur mon site ;)

PigeonDeCombat
WRInaute discret
WRInaute discret
 
Messages: 206
Inscription: 6 Aoû 2006

Message le Sam Sep 02, 2006 16:34

mowmow a écrit:Je t'aurais bien proposé de poster dans ce sujet : http://www.webrankinfo.com/forums/viewtopic_58093.htm mais ca intéresse pas grand monde donc bon :D

Merci quand même, je vais tester sur mon site ;)



Bhé rajoute le dans ton topic de base ca peut pas faire de mal de tout rassembler


Mumuri
WRInaute passionné
WRInaute passionné
 
Messages: 1800
Inscription: 3 Nov 2004

Message le Dim Sep 03, 2006 15:33

en méme temps, c'est du javascript et non du php mowmow

merci pour le script

Zorian
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Inscription: 4 Jan 2008

Message le Ven Jan 04, 2008 10:06

Alors ok ce script il déchire, ca marche nikel.

Par contre je suis dans l'obligation de le retranscrire en PHP pour une appli d'un client. Le seul truc qui me dérange c'est je ne comprend absolument la syntaxe ' /[NSEW]/.test(dir) '. Pareil pour ' /[NS]/.test(dir) ' et ' /[WS]/.test(dir) '.

C'est quoi de ce NSEW, les directions Nord Sud etc... si c'est le cas est ce que quelqu'un pourrait me filer un lien vers une explication de ca ou encore mieux l'equivalent en PHP.

Merci d'avance les geek ;)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

  • Calcul d'indice de densité
    Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
  • Calcul de l'indice de co-occurrence
    Cet outil vous permet de calculer l'indice de co-occurrence de 2 ou 3 termes, ainsi que le ratio E/F. L'indice de co-occurrence mesure le relation entre les termes : plus cet indice est élevé, plus les termes sont reliés. Concrètement, plus l'indice est élevé, plus il est fréquent de trouver des documents qui contiennent les différents termes.
  • Calcul du taux de liens vers des pages internes
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités