2017-12-05 1 views
1

Ich erstelle eine Karte in diesem ich zeige einen Marker auf dem aktuellen Standort seine Arbeit gut wenn Standort bereits eingeschaltet ist, aber wenn Aktivität eingeschaltet ist und ich Ort einschalten es zeigt keine Marker ich will Marker zeigen, wenn Standort auf jede Hilfe ist? ..Wenn der Benutzer an Ort und Stelle Anzeige Marker an der aktuellen Position

public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     getCurrentLocation(); 
     // latLngCurrentLocation is my current location which is update using getCurrentLocation() method. 

    if(latLngCurrentLocation != null) { 

    // add marker on current location 
      markerCurrent = mMap.addMarker(new MarkerOptions() 
        .position(latLngCurrentLocation) 
        .draggable(true) 
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)) 
        .title("Current Location")); 

      mMap.moveCamera(CameraUpdateFactory.newLatLng(latLngCurrentLocation)); 
      mMap.animateCamera(CameraUpdateFactory.zoomTo(8)); 
      mMap.getUiSettings().setZoomControlsEnabled(true); 
      mMap.setOnMarkerDragListener(this); 


     } 

    } 

Antwort

3

Sie Standort in onLocationChanged(Location location) erhalten, sobald Ihre Position geändert wird. Sie werden Breite und Länge in location Objekt erhalten, so dass Sie Ihren Marker in onLocationChanged(Location location) Methode

@Override 
public void onLocationChanged(Location location) 
{ 
    mLastLocation = location; 
    if (mCurrLocationMarker != null) 
    { 
     mCurrLocationMarker.remove(); 
    } 

    //Place current location marker 
    LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); 
    MarkerOptions markerOptions = new MarkerOptions(); 
    markerOptions.position(latLng); 
    markerOptions.title("Current Position"); 
    markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)); 
    mCurrLocationMarker = mGoogleMap.addMarker(markerOptions); 

    //move map camera 
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); 
    mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(11)); 


} 

einstellen oder wenn Sie Ihre Marker einmal dreht GPS auffrischen möchten, dann können Sie BroadcastReceiver verwenden. BroadcastReceiver löst aus, wenn GPS ein-/ausgeschaltet wird. Sie können das Beispiel in folgendem Link finden: Broadcast receiver for GPS

+0

Dank für Ihre schnelle Antwort, aber ich möchte wirklich, dass OnLocation Änderungsverfahren ohne Verwendung –

+0

posten Sie Ihre 'getCurrentMethod()' Code @nileshprajapati – Kuls

+0

seine Methode für dort aktuellen Standort, wo i Lage Lage nur verwendet = LocationServices.FusedLocationApi.getLastLocation (googleApiClient); –

2

Über GpsTracker klasse oder googleClient api können Sie Breiten- und Längengrad erhalten und dann als gpstracker abrufen .getlatitude und getlongtitude und setzen Sie diese Werte auf globale Variablen und greifen Sie darauf zu, wo Sie wollen.

+0

Gibt es einen Auslöser, wenn der Standort ein-/ausgeschaltet wird? –

+0

Kann deine Frage nicht bekommen. –

+0

Wenn der Benutzer an seinem Standort eine Standardmethode oder irgendeinen anderen Auslöser einstellt, können wir den Benutzer ein-/ausschalten location –

Verwandte Themen