Comment trouver ma distance à un emplacement connu en JavaScript
À l'aide de JavaScript dans le navigateur, comment puis-je déterminer la distance à partir de ma position actuelle à un autre endroit pour lequel j'ai la latitude et la longitude?
function distance(lon1, lat1, lon2, lat2){var R =6371;//Radius of the earth in kmvar dLat =(lat2-lat1).toRad();//Javascript functions in radiansvar dLon =(lon2-lon1).toRad();var a =Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(lat1.toRad())*Math.cos(lat2.toRad())*Math.sin(dLon/2)*Math.sin(dLon/2);var c =2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));var d = R * c;//Distance in kmreturn d;}/** Converts numeric degrees to radians */if(typeof(Number.prototype.toRad)==="undefined"){Number.prototype.toRad =function(){returnthis*Math.PI /180;}}
window.navigator.geolocation.getCurrentPosition(function(pos){
console.log(pos);
console.log(
distance(pos.coords.longitude, pos.coords.latitude,42.37,71.03));});
Apparemment, je suis 6643 mètres du centre de Boston, MA (c'est dur codé en deuxième position).
Merci beaucoup. J'ai encore une requête. Pouvez-vous m'aider à trouver la latitude et la longitude d'un lieu donné. Qu'avez-vous déjà essayer? J'ai essayé de trouver la distance à partir de ma position actuelle à une adresse particulière. De toute façon, j'ai trouvé que. Merci pour la réponse. Salut @Frank, merci une tonne pour ce script -- A-il été testé? Lorsque la valeur de la longitude ou la latitude est moins, le résultat ne semble pas exacte.
Si votre code s'exécute dans un navigateur, vous pouvez utiliser le HTML5 API de géolocalisation:
Une fois que vous connaissez la position actuelle et la position de votre "cible", vous pouvez calculer la distance entre eux dans la façon documentée dans cette question: Calculer la distance entre les deux latitude-longitude des points? (Haversine formule).
Donc le script complet devient:
Apparemment, je suis 6643 mètres du centre de Boston, MA (c'est dur codé en deuxième position).
Voir ces liens pour plus d'informations:
Qu'avez-vous déjà essayer?
J'ai essayé de trouver la distance à partir de ma position actuelle à une adresse particulière. De toute façon, j'ai trouvé que. Merci pour la réponse.
Salut @Frank, merci une tonne pour ce script -- A-il été testé?
Lorsque la valeur de la longitude ou la latitude est moins, le résultat ne semble pas exacte.
OriginalL'auteur Frank van Puffelen