7

このトピックに関しても同様の質問がありますが、特定の要件に関するご意見やご提案が必要です。正確な中間地点をバックグラウンドで取得し、Androidの開始地点と終了地点の距離を計算してください

ここに私の必要があります - 私たちはユーザーの旅行を追跡する1つのアプリケーションを開発しています。 アプリケーションは、バックグラウンドでそのユーザーの場所の収集を開始します。ユーザーがAppを開始すると、App.Background Serviceはユーザーの特定の期間内の移動に基づいて場所を取得します。 ユーザーがアプリからの旅行を「停止」すると、記録されたすべての場所の助けを借りてユーザーが移動した距離が計算されます(Google距離計算APIを使用)。 アプリは理想的には正常に動作します。 しかし、主な挑戦は - です。いくつかのシナリオでは、ユーザーの正確で正確な場所を取得できません。シナリオに影響する - インターネットなし、2g/3gのデータプラン、GPSが正確なデータを返さない特定のエリアなど

誤ったトリップ距離とルートが発生します。 。

いずれにしても、最良の代替案/提案がありますか? P.P. - GPS、ネットワーク、FusedLocationProviderを試しました。我々は、精度とdistances.Got近い点に基づいてロジックを実装している

-

EDIT 2。そして、実際の道路から気を散らしているいくつかのロケーションポイントを修正する、Googleの有用なAPIを見つけました。他人の参考のためにここに投稿...

Snap to Roads Api from Google

答えて

1

あなたはGPSが動作を停止することを、加速度計をオンを検出した場合はGPSと加速度計

を混ぜるようにしてください。 GPSを再度オンにした場合は、再度距離を計算してください。あなたはGPS部品と加速度計のものと一緒にルートを持つことができますこの方法。 GPS部品が大きいほど、より正確なデータが得られます

+0

コードスニペットを入力してください。同じの例? –

+0

https://developer.android.com/guide/topics/sensors/sensors_motion.html#sensors-motion-stepcounter ステップ数をカウントするコードがあります。ステップを聞くこともできます。 https://stackoverflow.com/questions/6368286/detecting-gps-on-off-switch-in-android-phones ここでは、GPSがオフになっているかどうかを検出できます。 GPSがオフになったら、加速度計を使用して歩数をカウントするだけです。 GPSが再びオンになったとき、acceletometerでカウントステップを停止する –

2

これは複雑なトピックです。

1つの考慮事項が必要です。 Android Oreoはバックグラウンドサービスを制限し、達成したいことは機能しません。私はどうなる

はこれである(そしてそれはgoolgeからの推薦である)

は、誰かが旅行(ユーザーがそれを認識している)、あなたがフォアグラウンドサービス、ドン」で通知が行く上で起動する必要がありますを開始しますもうバックグラウンドサービスに頼ることはありません。 Google Fit Appの機能「Start Activity」を確認します。

信号や正確なGPSを持っていないとして、それは地理的な問題です!あなたができることは何もありません。または、LocationProviderを使用して、可能でしょうか。

FusedLocationProviderは、ロケーションの更新をリクエストするすべてのアプリ内で融合されています。

これを読み、それが役立つかどうかを確認してください。基本的

https://developer.android.com/guide/topics/location/strategies.html

+0

フォアグラウンドサービスは私のアプリケーションの必要条件ではあまり適切ではありません:(そして、私はGoogleフィットの作業を見直しました。フォアグランドサービスのほかに、私はそれらによって追跡される場所にもっと興味があります。センサーを使用している可能性がありますか? –

+0

https://github.com/googlesamples/android-play-locationを見て、サンプル「LocationUpdatesForegroundService」を確認してください。これはアプリを実装するうえで便利なサービスです。 –

+0

ちょっと...私たちはより正確な位置とポイントを得るために正確さと距離を持った条件とロジックを作った。今のところ唯一の問題は、我々は道路の反対側に位置を取得すると、距離が反映されます。道路上の正確なポイントを得るためのすべてのアイデア?ルート全体の中で? –

1

How to get more accuracy by GPS_PROVIDER

位置の精度は、それを捨てる許容できない場合。次の方が良いでしょう。

+0

私はすでにこれを試しました。しかし問題は、各デバイスが "より良い"と考えられる異なる精度レベルを有することである。たとえば、50メートルの精度と言うと比較すると、一部のデバイスの位置は、そのレベルを常に超える精度レベルを持つため記録されません。一部のデバイスは、ハードウェアに基づいて1500〜2500の精度を持ちます。 –

+0

はい、私は100以下の精度で正確に来るのを待って、マップ上に美しいkml行を作成します。 2番目のポイントの精度はメートルで1500はGPSではなくセルタワーの位置です。 – danny117

+0

ねえ...私たちは、正確な距離と距離を持って条件と論理を作って、より近い場所を得ることができました。今の唯一の問題は、道路の反対側に位置を取得すると、距離が反映されます。のみ?全体のルート中に?? –

関連する問題