代码:
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);
。
如果你的答案确实检查了最后的位置信息,那就没关系。
如果您的回答在googlemap上查看clicked point's coordinates
或setMyLocation's coordinates
,我也会很高兴。
请您告诉我?
答案 0 :(得分: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()));
}
}
}
希望它有所帮助!