Я пытаюсь создать приложение, подобное ola/uber. Я хочу переместить значок и повернуть, когда дорога повернуть налево или вправо. Я использую следующий код.Поверните значок маркера/автомобиля в Google maps - Android
private void rotateMarker(final Marker marker, final float toRotation) {
if(!isMarkerRotating) {
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
final float startRotation = marker.getRotation();
final long duration = 1000;
final Interpolator interpolator = new LinearInterpolator();
handler.post(new Runnable() {
@Override
public void run() {
isMarkerRotating = true;
long elapsed = SystemClock.uptimeMillis() - start;
float t = interpolator.getInterpolation((float) elapsed/duration);
float rot = t * toRotation + (1 - t) * startRotation;
marker.setRotation(-rot > 180 ? rot/2 : rot);
if (t < 1.0) {
// Post again 16ms later.
handler.postDelayed(this, 16);
} else {
isMarkerRotating = false;
}
}
});
}
}
Для расчета подшипника:
currentLocation = location;
if(previousLocaton!=null){
previousLocaton = tempLocation;
tempLocation = currentLocation;
Log.d("previousLocaton=====> ",""+previousLocaton);
Log.d("currentLocation=====> ",""+currentLocation);
bearing = previousLocaton.bearingTo(currentLocation) ;
}else{
previousLocaton = location;
tempLocation = location;
}
Чтобы установить подшипник:
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(latLng).zoom(14).bearing(bearing).build();
Для вращения маркера я вызвать метод roateMarker в onLocationChanged
измененного метода:
currLocationMarker = mMap.addMarker(markerOptions);
rotateMarker(currLocationMarker,bearing);
Теперь моя иконка вращается. Но карта google также вращается. Я хочу повернуть значок в покое. Я ссылаюсь на следующую ссылку для анимации и перемещения маркера. Link 1. Пожалуйста, дайте мне любую идею, чтобы решить мою проблему.
Я постараюсь это, и пусть вы знаете, скоро .. – Vijay
Привет .. Извините за долгий перерыв .. это тоже работает нормально. Но я столкнулся с другой проблемой. Я заменяю маркер каждые 5 секунд. Когда я заменяю маркер, позиция маркера начинается с реальной позиции. Для моего маркера указатель стрелки по умолчанию указывает верхний ангел. Когда я перехожу из одного места в другое, мой маркер вращается, и внезапно он начинается с верхнего ангела. Пожалуйста, дайте мне понять, как решить эту проблему. – Vijay
Это простое решение и работает отлично .. !! – Vijay