0

背景

追跡アプリケーションを作成したい。ユーザーは目的地として 1 つのポイントを選択できます。ユーザーが開始ボタンを押すと、アプリケーションはユーザーの現在の場所を特定し、ユーザーが選択した目的地で終了します。

問題

マップ上に 2 つのマーカーを配置することができました。1 つは目的地、もう 1 つはユーザーの現在地です。ユーザーが移動すると、現在の場所のマーカーを移動することに問題があります。つまり、ユーザーが移動を開始したら、マーカーをマップ上で移動させたいということです。これは、ユーザーが目的地に到着するまで、アプリケーションがユーザーの位置を検出することを意味します。

コード

私は現在、機能を使用しています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つのことは、メソッドが実際にどのように機能するかです.

それで、誰でもこの問題を解決するのを手伝ってもらえますか? 私は正しい道を進んでいますか、それとも使用すべき他の方法があります。前もって感謝します。

4

1 に答える 1

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) {
}
于 2013-11-08T14:28:48.900 に答える