Cómo calcular la distancia entre marcadores en Google Maps V3
Calcular la distancia entre dos puntos en un mapa es una tarea común, y Google Maps V3 proporciona una API completa para hacerlo. Uno de los métodos más sencillos es utilizar la fórmula de Haversine, que calcula la distancia entre dos coordenadas geográficas teniendo en cuenta la curvatura de la Tierra.
La fórmula de Haversine
La La fórmula de Haversine se puede implementar en JavaScript de la siguiente manera:
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 };
Ejemplo de uso
Para usar la fórmula anterior para calcular la distancia entre dos marcadores en un mapa de Google, simplemente pase las coordenadas de los marcadores como argumentos al Función getDistance. Por ejemplo:
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 distancia ahora contendrá la distancia entre los dos marcadores en metros.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3