42 votes

Google Maps - Comment obtenir la distance entre deux points en mètres ?

J'ai ces coordonnées :

(45.463688, 9.18814) 
(46.0438317, 9.75936230000002)

et j'ai besoin (via Google API V3, je pense) d'obtenir la distance entre ces 2 points en mètre. Comment faire ?

125voto

Roman Goyenko Points 2870

Si vous souhaitez utiliser l'API google maps v3, voici une fonction à utiliser : Note : vous devez ajouter &libraries=geometry à votre script source

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

<script>
var p1 = new google.maps.LatLng(45.463688, 9.18814);
var p2 = new google.maps.LatLng(46.0438317, 9.75936230000002);

alert(calcDistance(p1, p2));

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

</script>

4voto

PiRX Points 1986

Je pense qu'il est possible de se passer d'une API spécifique et de calculer la distance avec du simple Javascript :

Le présent Ce site contient de bonnes informations sur les calculs géographiques et un exemple de calcul de distance en Javascript.

Ok, un coup d'œil rapide à la page API de Google et il semble que vous puissiez le faire par :

  1. Appeler DirectionsService().route() pour obtenir DirectionsResult avec des itinéraires
  2. Pour un ou plusieurs itinéraires, parcourez les propriétés des étapes et calculez la somme des distances.

1voto

Rob Points 3129

http://www.csgnetwork.com/gpsdistcalc.html

Cela n'a rien à voir avec le codage

EDIT si vous cherchez du code

Calculer la distance entre deux points dans google maps V3

1voto

Pixelmixer Points 310

Cela se fait principalement avec des mathématiques en dehors de l'API de Google, donc vous ne devriez pas avoir besoin d'utiliser l'API pour autre chose que de trouver les coordonnées correctes.

Sachant cela, voici un lien vers une question précédemment traitée concernant le Javascript.

Calculer la distance entre 2 coordonnées GPS

1voto

Tommaso Points 155

Essayez ceci

 CLLocationCoordinate2D coord1;
 coord1.latitude = 45.463688;
 coord1.longitude = 9.18814;
 CLLocation *loc1  = [[[CLLocation alloc] initWithLatitude:coord1.latitude longitude:coord1.longitude] autorelease];

 CLLocationCoordinate2D coord2;
 coord2.latitude = 46.0438317;
 coord2.longitude = 9.75936230000002;
 CLLocation *loc2  = [[[CLLocation alloc] initWithLatitude:46.0438317 longitude:9.75936230000002] autorelease];

 CLLocationDistance d1 = [loc1 distanceFromLocation:loc2];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X