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 ?
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 ?
Essayez ceci :
const const toRadians = (val) => {
return val * Math.PI / 180;
}
const toDegrees = (val) => {
return val * 180 / Math.PI;
}
// Calculate a point winthin a circle
// circle ={center:LatLong, radius: number} // in metres
const pointInsideCircle = (point, circle) => {
let center = circle.center;
let distance = distanceBetween(point, center);
//alert(distance);
return distance < circle.radius;
};
const distanceBetween = (point1, point2) => {
//debugger;
var R = 6371e3; // metres
var φ1 = toRadians(point1.latitude);
var φ2 = toRadians(point2.latitude);
var Δφ = toRadians(point2.latitude - point1.latitude);
var Δλ = toRadians(point2.longitude - point1.longitude);
var a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
Math.cos(φ1) * Math.cos(φ2) *
Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R * c;
}
Références : http://www.movable-type.co.uk/scripts/latlong.html
Faites-vous référence à la distance, c'est-à-dire à la longueur de l'ensemble du chemin, ou voulez-vous connaître uniquement le déplacement (distance en ligne droite) ? Je constate que personne ne souligne la différence entre la distance et le déplacement. Pour la distance, il faut calculer chaque point d'itinéraire donné par les données JSON/XML, tandis que pour le déplacement, il y a une solution intégrée qui utilise Spherical
classe.
Faites-vous référence à la distance, c'est-à-dire à la longueur de l'ensemble de la trajectoire, ou voulez-vous connaître uniquement le déplacement (distance en ligne droite) ? Je vois que personne n'indique la différence entre la distance et le déplacement. Pour la distance, il faut calculer chaque point d'itinéraire donné par des données JSON/XML, tandis que pour le déplacement, il existe une solution intégrée qui utilise la fonction Spherical
classe. L'idée est que si l'on se réfère à la distance, il suffit d'utiliser la classe computeDistanceBetween
sur chaque point du chemin et les concaténer.
//calculates distance between two points in km's
function calcDistance(p1, p2) {
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2);
}
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.