2014-06-16 11 views
8

Ich habe eine Route mit einer Polylinie über Google Maps api v2 (Android) erstellt. Mein benutzerdefinierter Marker bewegt sich entlang der Route, die ich durch Erstellen eines Threads erreicht habe. Ich bekomme auch die Manöver (links abbiegen, rechts abbiegen, etc).Drehen (drehen) Markerposition basierend auf der Richtung über die Route

Jetzt, wo sich mein Marker bewegt (ein Autosymbol), möchte ich, dass er sich dreht und durch die Route navigiert. Ich habe es geschafft, es zu drehen, aber ich möchte eine genaue Lösung für diese Abfrage. Gerade jetzt habe ich die Winkel fest codiert und damit meinen Marker mit der "setRoation() Methode" gedreht. Allerdings ist die Rotation nicht so, wie sie sein sollte und ich kann ihre dynamischen Winkel nicht erhalten.

Bitte Hilfe! Vielen Dank im Voraus

+0

Haben Sie eine Lösung erhalten? Kannst du einen Code mit mir teilen? –

Antwort

3

Hey siehe drehen Marker folgenden Code als pro Standort

double oldlat = 19.180237, oldlong = 72.855415; 
    double newlat = 19.180237, newlong = 72.855415; 

    public void rotatemarker() { 
     Location prevLoc = new Location("service Provider"); 
     prevLoc.setLatitude(oldlat); 
     prevLoc.setLongitude(oldlong); 
     Location newLoc = new Location("service Provider"); 
     newLoc.setLatitude(newlat); 
     newLoc.setLongitude(newlong); 
     bearing = prevLoc.bearingTo(newLoc); 
     map.clear(); 
     map.addMarker(new MarkerOptions() 
       .position(new LatLng(newlat, newlong)) 
       .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher)) 
       .anchor(0.5f, 0.5f) 
       .rotation(bearing) 
       .flat(true)); 


     oldlong = newlong; 

    } 
+0

Ich arbeite an einem ähnlichen Projekt. Warum wird altlang neu zugewiesen? –

+1

Wo haben Sie diese Methode aufgerufen? –