2012-12-12 13 views
17

Sto utilizzando un'icona personalizzata nella mia applicazione per la posizione corrente dell'utente e voglio mantenerla in questo modo durante l'aggiornamento alla nuova libreria di Google Maps.Android Google Maps V2 cambia icona La mia posizione

Con la libreria v1 di Google Maps, ho esteso MyLocationOverlay e sovrascritto il metodo drawMyLocation per disegnare la mia icona personalizzata lì.

GoogleMap abilita la posizione corrente con il metodo setMyLocationEnabled, ma non c'è modo di personalizzarlo, per quanto ne so.

Qualcuno sa come realizzare questo su v2?

risposta

3

Ok, quindi ho solo pensato che se non si aggiunge il titolo o il frammento di codice, il marcatore non avrà effetto su un evento click, e agisce come un'immagine sovrapposta. Anche se non è perfetto, si adatta alle mie esigenze

private Marker marker = mMap.addMarker(new MarkerOptions() 
        .position(latLng) 
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); 

Grazie a tutti

13

Creare un indicatore nel costruttore della mappa che utilizza un'icona personalizzata.

_myLocation = mMap.addMarker(new MarkerOptions() 
         .position(MAP_CENTER) 
         .title("My Location") 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.mylocation))); 

implementare una posizione cambiato Listener, https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener

Aggiornare l'indicatore di posizione quando il provider si chiama:

public void onLocationChanged (Location location) 
{ 
    _myLocation.position(location); //May have to convert from location to LatLng 
} 
+1

Questo è il modo in cui è stato utilizzato per essere fatto sulla libreria V1. In V2, non gestisci MapView all'interno di un'attività. Inoltre, non esiste una classe Overlay su V2 da cui estendersi. https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/package-summary –

+1

My Bad, non avevo capito che intendevi la versione di Google Play di Maps . Si prega di consultare la mia risposta aggiornata sopra. Questo è bello perché ora è molto simile a come si comporta la versione Javascript di Google Maps. – javram

+1

@RobertEstivill: AFAIK, questa è l'unica opzione, almeno se si tiene conto del comportamento documentato/supportato. – CommonsWare

0

C'è sicuramente un modo per mostrare icona personalizzata sulla posizione corrente. Cassa Link avrai più idea per personalizzare la tua icona sulla mappa.

Prova il codice qui sotto:

private static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298); 
private Marker melbourne = mMap.addMarker(new MarkerOptions() 
         .position(MELBOURNE) 
         .title("Melbourne") 
         .snippet("Population: 4,137,400") 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); 
+0

Questo può essere fatto, ma non è compatibile con il meccanismo di MyLocation corrente. In altre parole, puoi utilizzare un indicatore senza tutte le informazioni sulla finestra, ma dovrai implementare manualmente un LocationListener per spostare la posizione in giro. Non è possibile riutilizzare le funzionalità di localizzazione incorporate –

+0

Questo è l'unico modo AFAIK. Si prega di inviare un po 'di codice in modo che io possa avere idea del tuo problema. Grazie. – GrIsHu

Problemi correlati