2016-03-28 12 views
0

Ich habe einen Code, um eine Google Karte für den Standort (36.1302,5.524) mit einem Marker an dieser Stelle anzuzeigen. Ich erstelle den Marker mit diesem Ort, das Problem ist, dass der Marker an der falschen Stelle auftaucht.Google Maps Android API v2, falscher Marker Ort

@Override 
public void onMapReady(GoogleMap googleMap) { 
    LatLng latLng = new LatLng(mLatitude,mLongitude); 
    MarkerOptions options = new MarkerOptions() 
      .position(latLng) 
      .title("I am here!"); 
    googleMap.addMarker(options); 
    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); 
} 

hier ist ein Screenshot: http://imgur.com/pCDu3iP

+0

Ich denke, Ihre Frage ist nicht abgeschlossen. –

+0

Ich benutze Google Api, um den Benutzerstandort zu erhalten, dann möchte ich es auf der Karte mit Google Maps Api anzeigen lassen. Das Problem ist, dass ich die richtigen Standortdaten erhalte, aber wenn ich den Marker hinzufüge, platziere ich ihn an der falschen Stelle Zeigen im Screenshot – ZeroOne

Antwort

1

Das ist, weil Ihre mLatitude und mLongitude Werte wahrscheinlich 0 sind und die Lage auf der Karte eingezeichnet ist 0,0.

Dies liegt hauptsächlich daran, dass Sie mLatitude und mLongitude Variablen verwenden, bevor ihre Werte festgelegt werden. Dies geschieht, weil onMap ready ziemlich früh in einem Aktivitätszyklus aufgerufen wird, während das Abrufen von Koordinaten von einem Sensor einige Zeit in Anspruch nimmt.

Versuchen Sie, Marker in onLocationChanged(Location location) Callback-Methode hinzuzufügen.

Verwandte Themen