2016-09-21 10 views
0

КОД:Как получить последнее местоположение на googlemap?

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 
    private Location mLastLocation; 
    private GoogleApiClient mGoogleApiClient; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) 
       == PackageManager.PERMISSION_GRANTED) { 
      mMap.setMyLocationEnabled(true); 
     } else { 
      Toast.makeText(getApplicationContext(), "oh, no", Toast.LENGTH_LONG).show(); 
     } 
     Toast.makeText(getApplicationContext(), "test"+mLastLocation.getLatitude(), Toast.LENGTH_LONG).show(); #Here is what i want. 
    } 
} 

После того как я получить мое местоположение через mMap.setMyLocationEnabled(true);,

Я хочу получить Latitude or Longitude в результате mMap.setMyLocationEnabled(true);.

но выше код возвращается

 FATAL EXCEPTION: main 
    Process: com.example.keepair.myapplication_maptest, PID: 15483 
java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference 
at com.example.keepair.myapplication_maptest.MapsActivity.onMapReady(MapsActivity.java:48) 

Вопрос: Есть ли хороший способ или метод?

Мне все равно, не отвечает ли ваш ответ не точно, как получить Latitude or Longitude результата mMap.setMyLocationEnabled(true);.

Если ваш ответ действительно проверяет информацию о последнем местоположении, все в порядке.

Я также буду рад, если ваш ответ вернется последним clicked point's coordinates или setMyLocation's coordinates на googlemap.

Хотелось бы вам сообщить?

+2

Посмотрите на ответ здесь: http://stackoverflow.com/questions/34582370/how-can-i-use-google-maps-and-locationmanager-to-show-current-location-on-androi –

+1

это может помочь вам получить ваше последнее местоположение: https://developer.android.com/training/location/retrieve-current.html – user1506104

ответ

1

Чтобы получить последнее место, от docs:

public class MainActivity extends ActionBarActivity implements 
     ConnectionCallbacks, OnConnectionFailedListener { 
    ... 
    @Override 
    public void onConnected(Bundle connectionHint) { 
     mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
       mGoogleApiClient); 
     if (mLastLocation != null) { 
      mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude())); 
      mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude())); 
     } 
    } 
} 

Надеется, что это помогает!

Смежные вопросы