2012-12-12 11 views
17

Ich verwende ein benutzerdefiniertes Symbol in meiner Anwendung für den aktuellen Standort des Benutzers und möchte es beim Aktualisieren auf die neue Google Maps-Bibliothek beibehalten.Android Google Maps V2 ändern Mein Standort-Symbol

Mit der Google Maps v1-Bibliothek habe ich MyLocationOverlay erweitert und die drawMyLocation-Methode überschrieben, um mein benutzerdefiniertes Symbol dort einzufügen.

Die GoogleMap aktiviert den aktuellen Standort mit der setMyLocationEnabled-Methode, aber es gibt keine Möglichkeit, sie anzupassen, soweit ich weiß.

Weiß jemand, wie man das auf v2 erreicht?

Antwort

3

Ok, so dass ich dachte nur, dass, wenn Sie den Titel oder Schnipsel nicht hinzufügen, die Marker-Effekt nicht auf einem Click-Ereignis haben wird, und es wirkt als eine Bildüberlagerung Auch wenn es nicht perfekt ist, paßt es meine Bedürfnisse

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

Vielen Dank aller

13

Erstellen Sie einen Marker im Map-Konstruktor, der ein benutzerdefiniertes Symbol verwendet.

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

einen Ort Implementieren Listener geändert, https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener

Aktualisieren, um die Position der Markierung, wenn der Provider genannt wird:

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

Dies ist so, wie es verwendet wurde, auf der V1-Bibliothek durchgeführt werden. In V2 behandeln Sie das MapView nicht innerhalb einer Aktivität. Darüber hinaus gibt es keine Overlay-Klasse auf der sich V2 erstreckt. https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/package-summary –

+1

Mein Fehler, ich wusste nicht, dass Sie die Google Play-Version von Google Maps meinen . Bitte sehen Sie meine aktualisierte Antwort oben. Das ist nett, weil es jetzt sehr ähnlich ist wie sich die Google Maps Javascript Version verhält. – javram

+1

@RobertEstivill: AFAIK, dies ist Ihre einzige Option, zumindest während Sie mit dokumentiertem/unterstütztem Verhalten kleben. – CommonsWare

0

Es definitiv ein Weg, um benutzerdefiniertes Symbol auf aktuellen Standort zu zeigen. Checkout Link Sie erhalten mehr Idee, um Ihr Symbol auf der Karte anzupassen.

Versuchen Sie den Code unten aus:

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

Dies kann durchgeführt werden, ist jedoch nicht mit dem aktuellen MyLocation-Mechanismus kompatibel. Mit anderen Worten, Sie können einen Marker ohne alle Fensterinformationen verwenden, aber Sie müssen einen LocationListener manuell implementieren, um den umzuschreibenden Standort zu verschieben. Sie können die integrierten Standortfunktionen nicht wiederverwenden –

+0

Dies ist die einzige Möglichkeit AFAIK. Bitte posten Sie etwas Code, damit ich eine Idee zu Ihrem Problem haben kann. Vielen Dank. – GrIsHu

Verwandte Themen