| |
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
PigeonDeCombat WRInaute occasionnel

Inscrit le: 06 Aoû 2006 Messages: 206
|
Posté le : Sam Sep 02, 2006 10:31 Sujet du message: [Google Maps API] - Calculer une distance à vol d'oiseau |
|
|
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: |
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: |
startPoint = new LatLong(lat, lng);
endPoint = new LatLong(lat, lng);
var dist = LatLong.distHaversine(startPoint, endPoint); // exprimé en Km.
|
Bonne continuation... |
|
| |
|
 |
TOMHTML WRInaute accro

Inscrit le: 25 Aoû 2004 Messages: 2995 Localisation: http://www.vrai-nom.com
|
Posté le : Sam Sep 02, 2006 11:05 Sujet du message: [Google Maps API] - Calculer une distance à vol d'oiseau |
|
|
je teste pas mais je suppose que ça marche
donc je recommande
merci  |
|
| |
|
 |
mowmow WRInaute passionné

Inscrit le: 03 Nov 2004 Messages: 962 Localisation: Zend Engine
|
Posté le : Sam Sep 02, 2006 15:10 Sujet du message: [Google Maps API] - Calculer une distance à vol d'oiseau |
|
|
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
Merci quand même, je vais tester sur mon site  |
|
| |
|
 |
PigeonDeCombat WRInaute occasionnel

Inscrit le: 06 Aoû 2006 Messages: 206
|
Posté le : Sam Sep 02, 2006 17:34 Sujet du message: [Google Maps API] - Calculer une distance à vol d'oiseau |
|
|
Bhé rajoute le dans ton topic de base ca peut pas faire de mal de tout rassembler |
|
| |
|
 |
Mumuri WRInaute accro

Inscrit le: 03 Nov 2004 Messages: 1733 Localisation: bordeaux
|
Posté le : Dim Sep 03, 2006 16:33 Sujet du message: [Google Maps API] - Calculer une distance à vol d'oiseau |
|
|
en méme temps, c'est du javascript et non du php mowmow
merci pour le script |
|
| |
|
 |
Zorian Nouveau WRInaute
Inscrit le: 04 Jan 2008 Messages: 1 Localisation: Lannoy
|
Posté le : Ven Jan 04, 2008 11:06 Sujet du message: [Google Maps API] - Calculer une distance à vol d'oiseau |
|
|
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  |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
Définitions :
|
|