Google 地图相机在一秒后重置当前位置
Google Maps Camera reset the current position after a second
我正在使用 google 地图 api 通过以下代码向用户显示当前位置和周围提到的一些区域。
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude,longitude);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f));
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.setMyLocationEnabled(true);
//call mentioned area to display
getLocation();
}
但问题是,当我通过拖动或 zoomIn/zoomOut 更改位置时,它会立即重置到之前的位置。
我想通过拖拽移动到任何地方,控制zoomIn,zoomOut也随心所欲。就在我点击
在 MyLocation 按钮上然后应该转到我当前的位置。
注意:当我关闭下面的代码时,需要几秒钟才能重置
//mMap.getUiSettings().setZoomControlsEnabled(true);
//mMap.setMyLocationEnabled(true);
提前致谢。
您在 onLocationChanged 覆盖方法中编写了移动相机的代码,以便在某个时间间隔内它的位置纬度和经度发生变化(可能是微小的变化)。
要避免这种情况,请删除此代码
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f));
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.setMyLocationEnabled(true);
来自 onLocationChanged
方法并将其写入外部方法并在必要时调用它(例如单击按钮)
但是,通过定义一个布尔标志来解决这个问题
private boolean flag = true;
然后在移动相机之前检查它
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude,longitude);
if (flag) {
flag = false;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f));
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.setMyLocationEnabled(true);
}
//call mentioned area to display
getLocation();
}
我正在使用 google 地图 api 通过以下代码向用户显示当前位置和周围提到的一些区域。
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude,longitude);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f));
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.setMyLocationEnabled(true);
//call mentioned area to display
getLocation();
}
但问题是,当我通过拖动或 zoomIn/zoomOut 更改位置时,它会立即重置到之前的位置。
我想通过拖拽移动到任何地方,控制zoomIn,zoomOut也随心所欲。就在我点击 在 MyLocation 按钮上然后应该转到我当前的位置。
注意:当我关闭下面的代码时,需要几秒钟才能重置
//mMap.getUiSettings().setZoomControlsEnabled(true);
//mMap.setMyLocationEnabled(true);
提前致谢。
您在 onLocationChanged 覆盖方法中编写了移动相机的代码,以便在某个时间间隔内它的位置纬度和经度发生变化(可能是微小的变化)。
要避免这种情况,请删除此代码
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f));
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.setMyLocationEnabled(true);
来自 onLocationChanged
方法并将其写入外部方法并在必要时调用它(例如单击按钮)
但是,通过定义一个布尔标志来解决这个问题
private boolean flag = true;
然后在移动相机之前检查它
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latLng = new LatLng(latitude,longitude);
if (flag) {
flag = false;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15f));
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.setMyLocationEnabled(true);
}
//call mentioned area to display
getLocation();
}