在android中创建一个requestLocationUpdates

时间:2013-11-08 14:17:17

标签: android google-maps geolocation location

化背景

我想创建一个跟踪应用程序。用户可以选择一个点作为目标点。一旦用户点击开始按钮,应用程序将确定用户当前位置并且将在用户刚刚选择的目的地处结束。

问题

我已设法在地图上放置2个标记。一个作为目的地点,另一个是用户的当前位置。我有一个问题,一旦用户移动,使当前位置标记移动。我的意思是,一旦用户开始移动,我希望标记在地图上移动。这意味着应用程序将检测用户位置,直到他们到达目的地。

代码

我目前正在使用函数requestLocationUpdate。但问题是,我真的不怎么这个功能。我看到的例子很少,但我不明白所有的例子。

这是我的requestLocationUpdate的样子:

public void locupdate() {
    locationManager = (LocationManager) mContext
            .getSystemService(LOCATION_SERVICE);
    Intent intent = new Intent(mContext, this.getClass());  
    PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, intent,
                    PendingIntent.FLAG_UPDATE_CURRENT);
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 45000,5,pi);
}

以下是我如何调用该方法:

public void updateCurrentLocation(View v){
    gps.locupdate();
}

updateCurrentLocation是一个android:onClick的按钮。一旦用户按下按钮,应用程序将每45开始更新一次该位置。这就是我所期待的。如何将其实施到标记并使标记每45秒更改一次位置?还有一件事我仍然困惑,requestLocationUpdates方法是如何工作的。

那么,这里的任何人都可以帮我解决这个问题吗?我是在正确的道路上还是我应该使用其他方法。提前谢谢。

1 个答案:

答案 0 :(得分:0)

  private static final LocationRequest REQUEST = LocationRequest.create()
            .setInterval(45000)         // 45 seconds
            .setFastestInterval(16)    // 16ms = 60fps
            .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 

并实现接口LocationListener

@Override
public void onLocationChanged(Location loc) {
}