Ho intenzione di condividere una soluzione di spostamento di un marcatore lungo il percorso se si dispone di Elenco. La bitmap si sposterà lungo il percorso dall'utilizzo della lista LatLng.Animare una macchina (Marker) lungo un percorso in google map android
risposta
public static void setAnimation(GoogleMap myMap, final List<LatLng> directionPoint, final Bitmap bitmap) {
Marker marker = myMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromBitmap(bitmap))
.position(directionPoint.get(0))
.flat(true));
myMap.animateCamera(CameraUpdateFactory.newLatLngZoom(directionPoint.get(0), 10));
animateMarker(myMap, marker, directionPoint, false);
}
private static void animateMarker(GoogleMap myMap, final Marker marker, final List<LatLng> directionPoint,
final boolean hideMarker) {
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
Projection proj = myMap.getProjection();
final long duration = 30000;
final Interpolator interpolator = new LinearInterpolator();
handler.post(new Runnable() {
int i = 0;
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - start;
float t = interpolator.getInterpolation((float) elapsed
/duration);
if (i < directionPoint.size())
marker.setPosition(directionPoint.get(i));
i++;
if (t < 1.0) {
// Post again 16ms later.
handler.postDelayed(this, 16);
} else {
if (hideMarker) {
marker.setVisible(false);
} else {
marker.setVisible(true);
}
}
}
});
}
Mi spieghereste cosa contiene l'direction directionPoint? Grazie –
la sua lista di LatLng dall'origine alla destinazione dove auto (marcatore) ha bisogno di animare lungo la mappa – Nikhil
Sto lavorando per animare la posizione dell'auto sulla base di aggiornamenti di posizione in tempo reale da un'altra app. Quindi, come posso ottenere LatLng List quando ho solo la posizione corrente? C'è un modo per ritardare il disegno dell'app per raccogliere pochi aggiornamenti, quindi aggiungere tutto a un oggetto List e passarlo al metodo e continuare a ripeterlo fino alla destinazione finale? –
Ho anche finito con questo stesso scenario, qui dato quel codice.
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, LocationListener {
private static Location oldLocation;
private GoogleMap mMap;
private LocationManager locationManager;
private Marker marker;
private static float angle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
Toast.makeText(this, "Location permissioin in not enable", Toast.LENGTH_SHORT).show();
return;
}
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2, 0, this);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
}
@Override
public void onLocationChanged(Location location) {
locationUpdate(location);
if (oldLocation != null) {
double bearing = angleFromCoordinate(oldLocation.getLatitude(), oldLocation.getLongitude(), location.getLatitude(), location.getLongitude());
changeMarkerPosition(bearing);
}
oldLocation = location;
}
private void locationUpdate(Location location) {
LatLng latLng = new LatLng((location.getLatitude()), (location.getLongitude()));
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latLng);
markerOptions.title("Current Position");
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.car_right));
mMap.clear();
marker = mMap.addMarker(markerOptions);
CameraPosition position = CameraPosition.builder()
.target(new LatLng(location.getLatitude(), location.getLongitude()))
.zoom(19)
.tilt(30)
.build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(position));
}
private void changeMarkerPosition(double position) {
float direction = (float) position;
Log.e("LocationBearing", "" + direction);
if (direction==360.0){
//default
marker.setRotation(angle);
}else {
marker.setRotation(direction);
angle=direction;
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
private double angleFromCoordinate(double lat1, double long1, double lat2,
double long2) {
double dLon = (long2 - long1);
double y = Math.sin(dLon) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(dLon);
double brng = Math.atan2(x, y);
brng = Math.toDegrees(brng);
brng = (brng + 360) % 360;
brng = 360 - brng;
return brng;
}}
spero che questo utile.
- 1. Come animare il marker in Android map api V2?
- 2. Cambia Google map marker
- 3. Ruota google map marker image
- 4. Animare un percorso con google map js api v3
- 5. Area Google Map Marker cliccabile
- 6. Google Map Marker Manager V3
- 7. Google Map v2 Marker Animation
- 8. Animazione tipo GIF per marker in google map api ANDROID
- 9. come disegnare un percorso tra due marker in google maps
- 10. Cambiare colore dei marker - Google Map V2 Android
- 11. Grafica vettoriale utilizzata per google map marker
- 12. Android, Come rimuovere tutti i marker da Google Map V2?
- 13. Rimuovi il marker precedente e aggiungi un nuovo marker in Google Map v2
- 14. posizionando più marker su google map dall'array
- 15. ridimensiona icona svg per google map marker
- 16. AngularJS Google Map con più marker
- 17. Come cambiare icona su Google map marker
- 18. Come animare un indicatore personalizzato di Google Maps lungo un percorso?
- 19. Spostare i marcatori in google map v2 android
- 20. Associare un oggetto a Marker (google map v2)
- 21. Come animare un percorso su tela - android
- 22. Aggiunta di array di marker in Google Map
- 23. chiari marcatori da Google Map in Android
- 24. Come animare un oggetto lungo un percorso GeoJSON usando d3.js?
- 25. Animazione Lungo un percorso con Rotazione automatica in base al percorso in Android
- 26. Marker off-set su Google Map API v3
- 27. Come impostare il tag sul marker di Google Map in Android?
- 28. Android, tracciare l'itinerario su google map
- 29. Android - Google Map non visualizza
- 30. Google map SDK - Percorso non accurato
Il post dovrebbe essere in una ** questione ** – Androiderson
Per animare i percorsi polilinea github.com/amalChandran/google-maps-route-animation – amalBit