2011-11-08 8 views
1

私はナビゲーションプログラムを持っています.4つのウェイポイントがある場合は、あなたが現在いる場所の詳細リストを強調したいと思います。次のウェイポイントと総距離。地図の中間地点に到達したときの判断方法

だから、あなたが持っている可能性がありますGoは右のメインストリートには、1.3マイル

  • Goはブロードウェイに残っ

    1. 、0.5マイル
    2. Goが、コンコードブルバードに2マイル
    を残しました

    しかし、どのように電話が別の経由地から始まるかを判断するにはどうすればいいですか?

  • +2

    Location.distanceTo()関数と[最も近いポイントアルゴリズム](http://en.wikipedia.org/wiki/Closest_pair_of_points_problem) – Reno

    +0

    @Reno - これは基本的には結局のことです。 –

    答えて

    2

    LocationManagerを使用すると、特定のプログラムの更新方法をいくつか設定できます。ウェイポイントまでの特定の距離にいる場合は、LocationManager.addProximityAlert()を使用してアラートしてください。また、Locationクラスを使用して距離を取得することもできます(例:waypoint.distanceTo(currentLocation);)。

    +0

    ありがとうございます。これはちょうど私が欲しいものになるように見えます。 –

    0

    私は、パッシブプロバイダを使用することになります。そのため、ナビゲータが使用されている場合でも、アプリケーションではユーザーがどこにいるかがわかります。

    次に、以前の場所と現在の場所を把握して、ウェイポイントからの距離の差を見て、一定の距離に達するとその距離を知ってから変更します新しいウェイポイント。

    addProximityAlertはどのウェイポイントを変更するのかを知ることが難しく、うまくいきませんでした。ユーザーがマーカーを更新する場所を知る必要があるため、同時にいくつかの計算を追加してください。