"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment calculer la distance entre deux marqueurs dans Google Maps V3 ?

Comment calculer la distance entre deux marqueurs dans Google Maps V3 ?

Publié le 2024-12-22
Parcourir:663

How to Calculate the Distance Between Two Markers in Google Maps V3?

Comment calculer la distance entre les marqueurs dans Google Maps V3

Calculer la distance entre deux points sur une carte est une tâche courante, et Google Maps V3 fournit une API complète pour ce faire. L'une des méthodes les plus simples consiste à utiliser la formule Haversine, qui calcule la distance entre deux coordonnées géographiques en tenant compte de la courbure de la Terre.

La formule Haversine

La formule Haversine

var rad = function(x) {
  return x * Math.PI / 180;
};

var getDistance = function(p1, p2) {
  var R = 6378137; // Earth's mean radius in meter
  var dLat = rad(p2.lat() - p1.lat());
  var dLong = rad(p2.lng() - p1.lng());
  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2)  
    Math.cos(rad(p1.lat())) * Math.cos(rad(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; // returns the distance in meter
};
La formule Haversine La formule Haversine peut être implémentée en JavaScript comme suit :

var rad = function(x) { retourner x * Math.PI/180 ; } ; var getDistance = fonction (p1, p2) { variable R = 6378137 ; // Rayon moyen de la Terre en mètre var dLat = rad(p2.lat() - p1.lat()); var dLong = rad(p2.lng() - p1.lng()); var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) * Math.sin(dLong / 2) * Math.sin(dLong / 2); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); vard = R * c; retourner d ; // renvoie la distance en mètre };

Exemple d'utilisation

var rad = function(x) {
  return x * Math.PI / 180;
};

var getDistance = function(p1, p2) {
  var R = 6378137; // Earth's mean radius in meter
  var dLat = rad(p2.lat() - p1.lat());
  var dLong = rad(p2.lng() - p1.lng());
  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2)  
    Math.cos(rad(p1.lat())) * Math.cos(rad(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; // returns the distance in meter
};
Pour utiliser la formule ci-dessus pour calculer la distance entre deux marqueurs sur une carte Google, transmettez simplement les coordonnées des marqueurs comme arguments au fonction getDistance. Par exemple :

var Marker1 = new google.maps.Marker({ position : nouveau google.maps.LatLng(51.508742, -0.120850), carte : carte }); var marqueur2 = nouveau google.maps.Marker({ position : nouveau google.maps.LatLng(40.712784, -74.005941), carte : carte }); var distance = getDistance(marker1.getPosition(), Marker2.getPosition());

How to Calculate the Distance Between Two Markers in Google Maps V3?
La variable distance contiendra désormais la distance entre les deux marqueurs en mètres.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3