studio puntos google geograficos entre distancia coordenadas calcular api google-maps

geograficos - calculando las distancias entre dos puntos usando google maps api?



distance in google maps api (8)

Han pasado muchos años desde que hice esto, pero podrías usar Great Circle Distance

¿Es posible enviar dos puntos de latitud larga a google para calcular la distancia entre los dos?


Lo que buscas es la fórmula Haversine . No necesita Google Maps para hacer esto, puede resolverlo por separado. Hay un script para hacer esto (en JavaScript) aquí .


Sí google puede hacer esto

google api docs

Aquí hay una pieza de script java que obtiene la distancia en km para dos puntos

function initialize() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map_canvas")); map.setCenter(new GLatLng(52.6345701, -1.1294433), 13); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); geocoder = new GClientGeocoder(); // NR14 7PZ var loc1 = new GLatLng(52.5773139, 1.3712427); // NR32 1TB var loc2 = new GLatLng(52.4788314, 1.7577444); alert(loc2.distanceFrom(loc1) / 1000); } }


No, pero puedes usar la fórmula de Vincenty, que modela la forma de la Tierra. Está disponible en Javascript aquí .

Una página web bastante fácil de analizar es (por ejemplo): http://boulter.com/gps/distance/?from=51.5329855+-0.1303506&to=40.757584+-73.985642&units=m

Para las personas que solo desean una medida rápida de distancia, consulte este gadget . Sin embargo, solo usa el cálculo del gran círculo.

Como señala Rob, Google lo ha agregado, pero solo usan la fórmula del gran círculo, que puede ser inexacta en 1/300.


Si solo quieres obtener la distancia como un número, prueba algo como esto.

function InitDistances() { var startLocation = new GLatLng(startLat, startLon); var endLocation = new GLatLng(endLat, endLon); var dist = startLocation .distanceFrom(endLocation); // Convert distance to miles with two decimal points precision return (dist / 1609.344).toFixed(2); }



Si está buscando utilizar la API v3 google maps, aquí hay una función que uso: Nota: debe agregar &libraries=geometry a la fuente del script

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>

Ahora la función:

//calculates distance between two points in km''s function calcDistance(p1, p2){ return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2); }


Y la distancia cal en c #:

// this returns the distance in miles. for km multiply result: * 1.609344 public static double CalculateDistance(double lat1, double lon1, double lat2, double lon2) { double t = lon1 - lon2; double distance = Math.Sin(Degree2Radius(lat1)) * Math.Sin(Degree2Radius(lat2)) + Math.Cos(Degree2Radius(lat1)) * Math.Cos(Degree2Radius(lat2)) * Math.Cos(Degree2Radius(t)); distance = Math.Acos(distance); distance = Radius2Degree(distance); distance = distance * 60 * 1.1515; return distance; } private static double Degree2Radius(double deg) { return (deg * Math.PI / 180.0); } private static double Radius2Degree(double rad) { return rad / Math.PI * 180.0; }