Android - 谷歌地图 - 相机更新每个位置的变化

时间:2013-06-16 23:19:11

标签: android maps

我正在构建一个应用程序,它必须始终将用户置于地图的中心。

我已经设置了以下内容:

locationManager = (LocationManager) saveContext
        .getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MapLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000,
        10, locationListener);
if (myLocation != null) {
    setLocation(myLocation);
}

private void setLocation(Location location) {
    workoutMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
            location.getLatitude(), location.getLongitude()), 18.0f));
}

这很有效,只要我在手机的历史记录中有一个lastKnownLocation。地图将正确居中。

我希望每次我获得新的位置更新时,都会使用新的位置信息再次执行setLocation()。

我尝试创建一个刚刚获取lastKnownLocation然后setLocation()的线程; 但这没有成功。

2 个答案:

答案 0 :(得分:1)

我建议您在Googles Receiving Location Updates指南中查看优秀且完整的示例。

它包含示例代码和您可以立即在ADT中导入的Android项目。

位置服务调用以向您的应用发送位置更新的回调方法在LocationListener接口的onLocationChanged()方法中指定。

您可以更新相机。

答案 1 :(得分:0)

万一其他人偶然发现这一点,可以做到,用户Rob给出的答案在另一篇StackOverflow帖子here中。

基本思想是创建一个CameraPosition对象,将其传递给CameraUpdateFactory,然后让地图为CameraUpdate对象设置动画。