Maison > interface Web > js tutoriel > Comment calculer la distance entre deux marqueurs dans Google Maps V3 ?

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

Barbara Streisand
Libérer: 2024-11-28 14:54:12
original
914 Les gens l'ont consulté

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 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
};
Copier après la connexion

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());
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal