Próbuję zaprogramować moją aplikację, aby mój widok z lewej strzałki wskazywał lokalizację android.Location. W tej chwili nie wskazuje właściwego kierunku. Z jakiegoś powodu jest całkiem nieźle. Myślę, że to dlatego, że nie biorę pod uwagę, w jakim kierunku mam się właściwie.Obracanie obrazu, aby zmierzyć się z daną pozycją w szerokości i długości geograficznej
Oto co robię obecnie:
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);
Oto GetAngle() funkcja:
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;
}
Czy istnieje lepszy sposób to zrobić niż jak ja? Nie mam pojęcia, jak ustawić widok obrazu w stronę współrzędnych, które otrzymuję z danej lokalizacji.
Przeczytaj http://stackoverflow.com/questions/4308262/calculate-compass-bearing-heading-to-location-in-android. To jest odpowiedź, której szukasz. –