如何避免Android地图开发中因定位更新引起的地图自动回弹问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1623个文字,预计阅读时间需要7分钟。
在开发基于位置服务的应用时,以下内容需注意:
考虑以下常见的代码实现,它在每次位置更新时都会移动并缩放地图:
@Override public void onLocationChanged(@NonNull Location location) { mLastLocation = location; LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); // 每次位置更新都移动并缩放地图 mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); }
同时,定位请求的配置可能如下:
@Override public void onConnected(@Nullable Bundle bundle) { mLocationRequest = new LocationRequest(); mLocationRequest.setInterval(1000); // 理想更新间隔 mLocationRequest.setFastestInterval(1000); // 最快更新间隔 mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); // ... 请求位置更新 }
根源分析:频繁的定位更新
上述问题的根源在于 onLocationChanged 回调方法的触发频率过高。
本文共计1623个文字,预计阅读时间需要7分钟。
在开发基于位置服务的应用时,以下内容需注意:
考虑以下常见的代码实现,它在每次位置更新时都会移动并缩放地图:
@Override public void onLocationChanged(@NonNull Location location) { mLastLocation = location; LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); // 每次位置更新都移动并缩放地图 mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); }
同时,定位请求的配置可能如下:
@Override public void onConnected(@Nullable Bundle bundle) { mLocationRequest = new LocationRequest(); mLocationRequest.setInterval(1000); // 理想更新间隔 mLocationRequest.setFastestInterval(1000); // 最快更新间隔 mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); // ... 请求位置更新 }
根源分析:频繁的定位更新
上述问题的根源在于 onLocationChanged 回调方法的触发频率过高。

