2017-02-02 2 views
0

Ich möchte die Karte von meinem aktuellen Standort laden. Jetzt verwende ich den folgenden Code.So laden Sie die Karte von unserem aktuellen Standort

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 


    } 

Nach Belastung der Karte

@Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     mMap.setOnMarkerClickListener(MapsActivity.this); 


     if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
      return; 
     } 
     mMap.setMyLocationEnabled(true);  
     if(checkLocationService()){ 
      startLocationUpdates(); 
     } 

Hier ist die Karte die Standardposition zeigt erste nach dem Aufstehen Lage die Kameraposition zu aktuellen Position bewegt. Aber ich möchte die Karte von meinem aktuellen Standort laden. Wie UBER, OLA .. Bitte lassen Sie mir eine Idee, um meine Anforderung zu erfüllen.

+2

Sie können nicht den aktuellen Standort laden, bevor der Standort-Service-Update erhalten. Uber tut dies nicht, es wartet auf den aktuellen Standort oder es verwendet den letzten bekannten Ort. – ChickenFeet

+0

Sie können jedoch nur die Karte anzeigen, nachdem Sie eine Standortaktualisierung erhalten haben. – ChickenFeet

Antwort

0

Warten Sie, bis sich der Standort ändert, und rufen Sie dann die Google Maps-Aktivität/Karte laden auf.

private void requestLocation(){ 
    locationManager.requestLocationUpdates(
     LocationManager.GPS_PROVIDER, 0, 0, mListener 
    ); 
} 

private LocationListener mListener = new LocationListener() { 
    @Override 
    public void onLocationChanged(Location location) { 
     // Call maps activity here/load map 
    } 
}; 

Sie können auch auf die Mitte des Displays Ozean & waiting for location Nachricht navigieren, für Location Update warten, dann navigieren Sie zurück zum aktuellen Standort. Dies wird häufig in Apps verwendet, die Karten verwenden.

0

Sie können die Entfernung von Ihrem Basisstandort zum abgerufenen aktuellen Standort finden. Wenn sich der Standort unter einigen Objekten befindet, können Sie die Karte ausfüllen.

private void setUpMapIfNeeded() {

if (mMap == null) { 
     // Try to obtain the map from the SupportMapFragment. 
     mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 
     mMap.setMyLocationEnabled(true); 
     // Check if we were successful in obtaining the map. 
     if (mMap != null) { 


     mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() { 

     @Override 
     public void onMyLocationChange(Location arg0) { 
     // TODO Auto-generated method stub 



     } 
    } 
} 
Verwandte Themen