問題タブ [fusedlocationproviderapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1509 参照

android - Fused Location Provider - 変位による位置の更新が機能しない

バックグラウンドから位置を追跡するAndroidアプリケーションがあります。次の構成で融合位置APIを使用しています

デバイスが移動した場合にのみ位置情報の更新が必要です。すべてが完全に機能する場合もあります。しかし、デバイスが静止していても、位置情報の更新を受信することがあります。

この問題が発生する理由 変位を設定する場合、間隔と最速間隔を設定する必要がありますか? この問題は Google Play サービスのバージョンに関連していますか?

0 投票する
0 に答える
525 参照

android - 融合されたロケーション API は、モバイル データの onLocationChnaged メソッドから同じロケーションを返します

現在の場所の緯度と経度を取得していますが、モードonLocationChangedを使用しているモバイルデータで同じ場所を返しPRIORITY_BALANCED_POWER_ACCURACYます。

私のコードはどこにあるのか教えてください

0 投票する
1 に答える
627 参照

android - Android GPS 距離計算機 - リアルタイム ジャンプ/ドリフト フィルタリング

インドの大手レンタカー会社向けに、Android GPS ベースの距離計算機を構築しています。アイドル状態のときに、ドライバーが閉鎖されたスペース (ショッピング モールなど) で待機したりさまよったりしているため、常に GPS ジャンプが発生しています。これにより、1 時間で全体の距離に 1 ~ 2 Km の追加が発生します。これを減らす方法は?

これが私たちのロジックです

  1. FusedLocationProvider onLocationChange に登録します (LocationUpdateRequest - 更新間隔 - 7 秒、つまり 7 秒ごとに場所を想定)
  2. OnLocation 次の条件で、ノイズの多い場所のフィルタを変更します。

    ステップ 1 - 精度が 170 メートル未満の位置をフィルタリングします
    ステップ 2 - 速度が 40 m/s (150 KMPH に相当) を超える場合、または加速度が 4 m/s^2 (5 秒で 0-75 KMPH に相当) を超える場合実際の車がこれらの速度を超えることはめったにありませんが、GPS ジャンプは頻繁に行うため、無視してください。
    ステップ 3 - ロケーションが 5 分を超えてモバイル ネットワークから来ている場合 (すなわち、方位/方位 = 0)、それらを無視し始めます。

  3. 最後に、その場所が上記の条件を満たしている場合は、それらを保存して距離を段階的に計算します。

このすべての後でも、ドライバーは待ち時間中に閉鎖されたスペース (ショッピング モールなど) で待機したりさまよったりする傾向があるため、GPS ジャンプに関する問題が常に発生しています。これらのジャンプにより、1 時間で全体の距離が 1 ~ 2 Km 増加します。ノイズをフィルタリングしてデータを平滑化するにはどうすればよいですか?

誰かが提案を提供できますか? 必要に応じて、GPS ジャンプ データを共有できます。

0 投票する
1 に答える
1142 参照

android - FusedLocationProvider がバックグラウンドでの位置情報の更新にインテントサービスを使用: 保留中のインテントにバンドルが追加されている場合、位置情報の更新が機能しません

私は長い間この質問に対する答えを探していましたが、誰も答えを持っていないようでした.

Google の最新の FusedLocationProviderAPI を使用して、位置情報の更新を購読しようとしています。私はオンラインでチュートリアルに従いましたが、requestLocationUpdatesによってトリガーされるintentserviceを使用して、時々自分の場所を取得することで機能します。

次に、オブジェクト「ユーザー」のカスタム クラスをインテント サービスに追加してみます。このカスタム クラスを使用すると、ロケーションをサーバーにアップロードして、バックグラウンドでロケーションを更新できます。

カスタム オブジェクトを追加する方法は、インテントにバンドルを追加することです。これは、IntentService をトリガーする pendingIntent に追加されます。残念ながら、インテントサービスはすぐに壊れてしまい、バンドルが追加されるとすぐに null を返します。

IntentService をトリガーする MainActivity のコードは次のとおりです。

上記からわかるように、バンドル 'b' をインテントに追加します。これは pendingIntent に追加され、LocationHandler クラスをトリガーします。

バンドルを追加しようとすると、場所は LocationHandler クラスで null を返しますが、バンドルを削除すると、場所の更新が再開されます。

念のためマニフェストを添付しました:

Android FusedLocationProviderApi : 受信インテントには LocationResult または LocationAvailability がありません。

これは私を夢中にさせています。誰かがこれについて少し光を当てることができることを願っています。

ありがとう。