Comment cloner votre propre emplacement, puis ajouter quelques mètres supplémentaires dans la direction souhaitée?Positionnement de la latitude et de la longitude dans la direction opposée
En ce moment mon application Android peut obtenir l'azimut, et ma position GPS, et j'ai codé en dur la distance désirée pour un exemple, 10 mètres.
Ensuite, mon application devrait créer un nouvel emplacement, exactement 10 mètres en avant où je suis confronté.
Donc, si ma position est la suivante: la longitude 17,537200603552526, latitude 25,70358496181195
et je veux à déplacer 8 mètres directement vers le nord, et 2 mètres directement vers l'est.
Est-ce que la nouvelle longitude et la latitude ressembler à:
longitude actuelle + 0,00008, latitude actuelle + 0,00002
Heres une partie de mon code pour calculer le gradient et le nouvel emplacement:
public double[] calculateXYLength(double[] vals, double distance)
{
double x = vals[0];
double y = vals[1];
if (vals[0] < 0)
{
x = x * -1;
}
if (vals[1] < 0)
{
y = y * -1;
}
// Log.d("lengths", "K = " + distance + "/(" + x + " + " + y + ")");
double k = distance/(x + y);
// Log.d("lengths", "vals[0]: " + vals[0] + " vals[1]: " + vals[1]);
// Log.d("lengths", "x: " + (vals[0] * k) + " y: " + (vals[1] * k) +
// " k: " + k);
return new double[] { (vals[0] * k), (vals[1] * k) };
}
Remarquez que le vals est le dégradé que j'ai déjà calculé, et le résultat que je vais revenir que je vais utiliser pour ajouter à mon nouveau point de localisation. Mais le fait est que je n'obtiens pas la distance désirée entre ces deux endroits. Et je ne comprends pas pourquoi. Comment puis-je ajouter la distance souhaitée sur la latitude/longitude?
Merci, Johan
Solution trouvée ici: http://stackoverflow.com/questions/2187657/calculate-second-point-knowing-the-starting-point-and-distance – leu2tm