Quelle api pour un calcul de distance
Fermé
CikiCha
Messages postés
8
Date d'inscription
vendredi 15 mai 2015
Statut
Membre
Dernière intervention
5 décembre 2017
-
12 déc. 2015 à 13:35
mtR^ Messages postés 1211 Date d'inscription vendredi 17 juin 2011 Statut Membre Dernière intervention 3 juin 2023 - 18 déc. 2015 à 16:11
mtR^ Messages postés 1211 Date d'inscription vendredi 17 juin 2011 Statut Membre Dernière intervention 3 juin 2023 - 18 déc. 2015 à 16:11
A voir également:
- Quelle api pour un calcul de distance
- Calcul moyenne excel - Guide
- Allumer pc à distance - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Logiciel calcul surface terrain gratuit - Télécharger - Outils professionnels
3 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
12 déc. 2015 à 13:56
12 déc. 2015 à 13:56
Bonjour,
Est-ce qu'il y a vraiment besoin d'importer une bibliothèque entière juste pour une formule de maths qui tient sur une ligne ? (question rhétorique)
https://www.google.fr/#q=latitude+longitude+distance
Avec (x1,y1) et (x2,y2) les coordonnées en radians, le résultat est en km.
Est-ce qu'il y a vraiment besoin d'importer une bibliothèque entière juste pour une formule de maths qui tient sur une ligne ? (question rhétorique)
https://www.google.fr/#q=latitude+longitude+distance
distance = acos(sin(x1)*sin(y1)+cos(x1)*cos(y1)*cos(x2-y2))*6371
Avec (x1,y1) et (x2,y2) les coordonnées en radians, le résultat est en km.
BunoCS
Messages postés
15495
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
23 octobre 2024
3 909
15 déc. 2015 à 11:45
15 déc. 2015 à 11:45
Hello,
L'objet Location te permet de récupérer la distance entre 2 positions facilement
L'objet Location te permet de récupérer la distance entre 2 positions facilement
mtR^
Messages postés
1211
Date d'inscription
vendredi 17 juin 2011
Statut
Membre
Dernière intervention
3 juin 2023
169
Modifié par mtR^ le 18/12/2015 à 16:11
Modifié par mtR^ le 18/12/2015 à 16:11
Lut,
Si tu veux aussi prendre en compte la hauteur des points (altitude) :
lat, lon, el = latitude, longitude, hauteur
Si tu ne veux pas utiliser la hauteur, suffit de fixer el1 et el2 à 0 lors de l'appel (d'ailleurs peu importe, tant que el1 = el2)
Si tu veux aussi prendre en compte la hauteur des points (altitude) :
public static double distance(double lat1, double lat2, double lon1, double lon2, double el1, double el2) { final int R = 6371; // Radius of the earth Double latDistance = Math.toRadians(lat2 - lat1); Double lonDistance = Math.toRadians(lon2 - lon1); Double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2); Double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); double distance = R * c * 1000; // convert to meters double height = el1 - el2; distance = Math.pow(distance, 2) + Math.pow(height, 2); return Math.sqrt(distance); }
lat, lon, el = latitude, longitude, hauteur
Si tu ne veux pas utiliser la hauteur, suffit de fixer el1 et el2 à 0 lors de l'appel (d'ailleurs peu importe, tant que el1 = el2)
12 déc. 2015 à 13:59
Merci KX