Sto provando a programmare la mia app in modo che il mio ImageView di una freccia punti ad un dato android.Location. In questo momento non punta nella giusta direzione. È piuttosto spento per qualche motivo. Penso che sia perché non sto prendendo in considerazione quale direzione sto affrontando correttamente.Rotazione di ImageView per affrontare una data posizione in latitudine e longitudine
Ecco quello che sto facendo attualmente:
float angle = GetAngle(myLocation);
RotateAnimation anim = new RotateAnimation(0.0f, angle, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(0);
anim.setDuration(2);
anim.setFillAfter(true);
arrow.startAnimation(anim);
Ecco la) Funzione GetAngle (:
float GetAngle(Location myLocation)
{
float angle = (float) Math.toDegrees(Math.atan2(theirLocation.getLatitude() - myLocation.getLatitude(), theirLocation.getLongitude() - myLocation.getLongitude()));
if (angle < 0)
angle += 360;
return angle;
}
C'è un modo migliore per farlo che come sono io? Non ho idea di come ottenere ImageView da affrontare verso le coordinate che mi danno da una posizione.
Leggi http://stackoverflow.com/questions/4308262/calculate-compass-bearing-heading-to-location-in-android. Questa è la risposta che stai cercando. –