Ich versuche meine App so zu programmieren, dass mein ImageView eines Pfeils auf eine bestimmte android.Location zeigt. Gerade jetzt zeigt es nicht in die richtige Richtung. Es ist ziemlich aus irgendeinem Grund. Ich denke, es liegt daran, dass ich nicht in Betracht ziehe, in welche Richtung ich mich richtig stelle. HierDrehen eines ImageView auf eine gegebene Position in Längen- und Breitengrad
ist, was ich tue momentan:
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);
Hier ist die GetAngle() Funktion:
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;
}
Gibt es einen besseren Weg, dies zu tun, als wie ich bin? Ich habe keine Ahnung, wie ich ImageView dazu bringen kann, den Koordinaten gegenüberzustehen, die ich von einem Ort bekomme.
lesen http://stackoverflow.com/questions/4308262/calculate-compass-bearing-heading-to-location-in-android. Dies ist die Antwort, nach der Sie suchen. –