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 La formule Haversine peut être implémentée en JavaScript comme suit :
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 };
Exemple Utilisation
Pour utiliser la formule ci-dessus pour calculer la distance entre deux marqueurs sur une Google Map, transmettez simplement les coordonnées des marqueurs comme arguments à la fonction getDistance. Par exemple :
var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(51.508742, -0.120850), map: map }); var marker2 = new google.maps.Marker({ position: new google.maps.LatLng(40.712784, -74.005941), map: map }); var distance = getDistance(marker1.getPosition(), marker2.getPosition());
La variable distance contiendra désormais la distance entre les deux marqueurs en mètres.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!