0

このチュートリアルを参照して運動追跡アプリケーションの作成を開始しましたが 、すべて正常に動作します。

しかし、追跡を停止してマップに移動すると、そのキロメートルは確かに通過したキロメートルよりもはるかに多く、マップは、私が確かにそこにいることができなかったいくつかのポイントにいたことを示しています.. .

(私は私の電話からの画像を持っていないので、添付の画像でマップの結果をシミュレートしました...) コードはチュートリアル コードと同じです (var を削除するバグを修正して - forこのチュートリアルを知っている人...)) 問題は何ですか?

ここに画像の説明を入力

4

1 に答える 1

0

私はeeeと同じことを発見しました- Android は GPS の使用中に非常に不正確な位置を断続的に提供するため、次のような精度フィルターを使用するのが最善の方法です。

var MinimumAccuracy = 20; // metres
var options = { maximumAge: 0, timeout: 30000, enableHighAccuracy: true };
var watchID;

function onSuccess(position){
  // Reject udpate if accuracy is not sufficient
  if(position.coords.accuracy > MinimumAccuracy){
      console.warn("Position update rejected because accuracy of"+position.coords.accuracy+"m is less than required "+MinimumAccuracy+"m");
      return;
  }

  /* else, do something with position */

}

function onError(error){
  // Log the error
  console.error("Error while retrieving current position. Error code: " + error.code + ",Message: " + error.message);
}

navigator.geolocation.watchPosition( onSuccess, onError, options );
于 2013-10-24T20:50:24.327 に答える