我在我的android应用程序中使用谷歌地图。一切都很好,但是当我没有启用GPS服务时,我会显示一个snackbar消息来启用。当我启用GPS,并返回我的碎片德地图,不自动返回我的位置,只有当我按定位按钮。
我试图通过在更新方法中使用线程来解决这个问题,但什么也没有。变化。有时起作用,但有时不够好。
我的onCreate:
public void init(){
gps = new GPSTracker();
gps.init(mActivity,mActivity);
if (!gps.canGetLocation()) {
gps.showSettingsAlert(mActivity,rootView);
}else {
initMap();
}我的initMap
private void initMap(){
try {
MapsInitializer.initialize(mActivity.getApplicationContext());
} catch (Exception e) {
e.printStackTrace();
}
mMapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap mMap) {
googleMap = mMap;
if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
googleMap.setMyLocationEnabled(true);
}
moveSearchCircle(new LatLng(gps.getLatitude(), gps.getLongitude()));
updateMapPosition();
googleMap.setIndoorEnabled(true);
addMarker();
}
});
}updateMapPosition
private void updateMapPosition(){
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(gps.getLatitude(), gps.getLongitude()), 15));
}onResume
@Override
public void onResume() {
super.onResume();
init();
}

发布于 2016-10-31 11:18:28
也许gps.getLatitude(), gps.getLongitude()返回零值,并且您的地图相机的焦点试图设置到这个地方。通常,获取设备位置操作需要一些时间,您应该异步地这样做。因此,请检查您的GPSTracker类并找到异步方法,或者查看本教程。
https://stackoverflow.com/questions/40323987
复制相似问题