Vous avez trouvé ce tutoriel intéressant ? Recommandez le en cliquant sur le bouton +1    

Mesurer aire ou surface - Calculer distance ou longueur

Tutoriel publié le Mis à jour le

Calculer la distance entre deux points

La distance entre deux points est la longueur du plus court chemin les séparant. Ce chemin le plus court est appelé géodésique. Sur une sphère, toutes les géodésiques sont des segments de grand cercle.

Pour calculer la distance séparant deux points, il suffit d'appeler la méthode statique computeDistanceBetween(), en lui passant :

  • les coordonnées du point de départ : objet LatLng,
  • les coordonnées du point d'arrivée : objet LatLng.

La valeur retournée est un nombre.

Exemple :

var distance = google.maps.geometry.spherical.computeDistanceBetween(départ, arrivée)

/**
 * Dans cet exemple on souhaite calculer la distance séparant 2 points :
 * Point de départ : Tours, ayant pour latitude : 47.390273, et longitude : 0.688834
 * Point d'arrivée : Lyon, ayant pour latitude : 45.764859, et longitude : 4.835036
 */
var tours = new google.maps.LatLng(47.390273,0.688834);
var lyon = new google.maps.LatLng(45.764859,4.835036);
/**
 * Le résultat est affecté à la variable distance
 */
var distance = google.maps.geometry.spherical.computeDistanceBetween(tours, lyon);

Voir un exemple complet : Calculer la distance entre deux points avec computeDistanceBetween.

Calculer la longueur d'un chemin d'un tracé ou d'une polyline

La longueur d'un chemin ou d'un tracé peut être calculée depuis :

Chaque possibilité est détaillée ci-dessous.

LatLng

Pour calculer la longueur d'un chemin (parcours ou tracé), il suffit d'appeler la méthode statique computeLength() en lui passant :

  • un tableau de LatLng comportant tous les points nécessaires à la construction du tracé.

La valeur retournée est un nombre.

Exemple :

var distance = google.maps.geometry.spherical.computeLength(tableau_de_LatLng)

/**
 * Dans cet exemple on souhaite connaître la longueur
 * du chemin comportant plusieurs points passés sous
 * la forme d'un tableau de LatLng nommé tableauLatLng
 */
var tableauLatLng = [
	new google.maps.LatLng(50.951019,1.859007),
	new google.maps.LatLng(48.389945,-4.485769),
	new google.maps.LatLng(43.483629,-1.558943),
	new google.maps.LatLng(42.695053,2.897987),
	new google.maps.LatLng(43.774410,7.49701),
	new google.maps.LatLng(48.973119,8.180351)
];
/**
 * Le résultat est affecté à la variable distance
 */
var distance = google.maps.geometry.spherical.computeLength(tableauLatLng);

Voir un exemple complet : Calculer la longueur d'un chemin avec computeLength et LatLng.

MVCArray

Le même calcul peut être effectué à l'aide de MVCArray. Dans ce cas, il suffit d'appeler la méthode statique computeLength() en lui passant :

  • un tableau de MVCArray comportant tous les points nécessaires à la construction du chemin.

La valeur retournée est un nombre.

Exemple :

var distance = google.maps.geometry.spherical.computeLength(tableau_MVCArray)

/**
 * Dans cet exemple on souhaite connaître la longueur
 * d'un chemin comportant plusieurs points passés sous
 * la forme d'un MVCArray nommé MvcArrayPerso
 */
var MvcArrayPerso = new google.maps.MVCArray();
	MvcArrayPerso.push(new google.maps.LatLng(50.951019,1.859007));
	MvcArrayPerso.push(new google.maps.LatLng(48.389945,-4.485769));
	MvcArrayPerso.push(new google.maps.LatLng(43.483629,-1.558943));
	MvcArrayPerso.push(new google.maps.LatLng(42.695053,2.897987));
	MvcArrayPerso.push(new google.maps.LatLng(43.774410,7.49701));
	MvcArrayPerso.push(new google.maps.LatLng(48.973119,8.180351));
/**
 * Le résultat est affecté à la variable distance
 */
var distance = google.maps.geometry.spherical.computeLength(MvcArrayPerso);

Voir un exemple complet : Calculer la longueur d'un chemin avec computeLength et MVCArray.

Polyline

Pour calculer la longueur d'une Polyline, il suffit d'appeler la méthode statique computeLength() en lui passant :

La valeur retournée est un nombre.

Exemple :

var distance = google.maps.geometry.spherical.computeLength(nom_de_la_polyline.getPath())

/**
 * Dans cet exemple on souhaite connaître
 * la longueur d'une Polyline
 */

/**
 * Options de la polyline
 */
var optionsPolyline = {
	map: maCarte,
	path: tableauLatLng_OU_tableauMvcArray
}
/**
 * Création de la polyline
 */
var maPolyline = new google.maps.Polyline(optionsPolyline);
/**
 * Le résultat est affecté à la variable distance
 */
var distance = google.maps.geometry.spherical.computeLength(maPolyline.getPath());

Voir un exemple complet :

Calculer la surface d'une boucle fermée ou d'un polygon

La surface d'une boucle fermée peut être calculée depuis :

Chaque possibilité est détaillée ci-dessous.

LatLng

Pour calculer la surface d'une boucle fermée, il suffit d'appeler la méthode statique computeArea(), en lui passant :

  • un tableau de LatLng définissant une boucle fermée.

La valeur retournée est un nombre.

Exemple :

var surface = google.maps.geometry.spherical.computeArea(tableau_de_LatLng)

/**
 * Dans cet exemple on souhaite calculer la surface
 * d'une boucle fermée dont chaque point est placé
 * dans un tableau de LatLng
 */
var tableauLatLng = [
	new google.maps.LatLng(50.951019,1.859007),
	new google.maps.LatLng(48.389945,-4.485769),
	new google.maps.LatLng(43.483629,-1.558943),
	new google.maps.LatLng(42.695053,2.897987),
	new google.maps.LatLng(43.774410,7.49701),
	new google.maps.LatLng(48.973119,8.180351)
];
/**
 * Le résultat est affecté à la variable surface
 */
var surface = google.maps.geometry.spherical.computeArea(tableauLatLng);

Voir un exemple complet : Calculer une surface avec computeArea et LatLng.

MVCArray

Le même calcul peut être effectué à l'aide de MVCArray. Dans ce cas, il suffit d'appeler la méthode statique computeArea() en lui passant :

  • un tableau de MVCArray comportant tous les points nécessaires à la construction du chemin.

La valeur retournée est un nombre.

Exemple :

var surface = google.maps.geometry.spherical.computeArea(tableau_MVCArray)

/**
 * Dans cet exemple on souhaite calculer la surface
 * d'une boucle fermée dont chaque point est placé
 * dans un tableau MVCArray
 */
var MvcArrayPerso = new google.maps.MVCArray();
	MvcArrayPerso.push(new google.maps.LatLng(50.951019,1.859007));
	MvcArrayPerso.push(new google.maps.LatLng(48.389945,-4.485769));
	MvcArrayPerso.push(new google.maps.LatLng(43.483629,-1.558943));
	MvcArrayPerso.push(new google.maps.LatLng(42.695053,2.897987));
	MvcArrayPerso.push(new google.maps.LatLng(43.774410,7.49701));
	MvcArrayPerso.push(new google.maps.LatLng(48.973119,8.180351));
/**
 * Le résultat est affecté à la variable surface
 */
var surface = google.maps.geometry.spherical.computeArea(MvcArrayPerso);

Voir un exemple complet : Calculer une surface avec computeArea et MVCArray.

Polygon

Pour calculer la surface d'un Polygon, il suffit d'appeler la méthode statique computeArea en lui passant :

La valeur retournée est un nombre.

Exemple :

var surface = google.maps.geometry.spherical.computeArea(nom_du_polygone.getPath())

/**
 * Dans cet exemple on souhaite calculer la surface
 * d'une boucle fermée sous la forme d'un Polygone
 */

/**
 * Options du polygone
 */
var optionsPolygone = {
	map: maCarte,
	path: tableauLatLng_OU_tableauMvcArray
}
/**
 * Créatiion du polygone
 */
var monPolygone = new google.maps.Polygon({optionsPolygone});
/**
 * Le résultat est affecté à la variable surface
 */
var surface = google.maps.geometry.spherical.computeArea(monPolygone.getPath());

Voir un exemple complet :