最高accurancyを使用してい
注意を達成することができます:
- 下
maximumAge
が設定されています。
timeout
は、アプリの使い方によって異なります(主に車で使用される「ナビアプリ」ですか、主に徒歩で使用される「ジョガーアプリ」ですか)。基本ルール:timeout
を高く設定すると、hardware-gps-chipに正確な座標を要求する時間が長くなるほど設定されます。
- もちろん、
enableHighAccuracy
もtrue
に設定する必要があります。
私は(少し)より詳細に上記の点を説明しましょう。
maximumAge
を0
(ゼロ)に設定すると、最も正確な座標にも一定の年齢があるため、「ライブ」-gps座標(キャッシュされていません)を返すことはありません。それは実際にあなたのアプリの要件に依存します。それはtimeout
に私をもたらします。
私が使用した最新のデバイスのほとんどが0.5〜3秒の間に座標を取得できるので、タイムアウトを5秒に設定します。あなたのアプリをどのくらい素早く動かすか(車、徒歩)を教えてくれます。アプリの移動が速くなればなるほど、timeout
が設定されていなければ、アプリはあまりにも不正確な座標を取得する可能性があります。一方、timeout
は0
に設定してはいけません。これは今すぐリクエストがキャンセルされるたびに「ライブ」-gps座標が返されることがないためです。確かGPS-ハードウェアことを確認するために、垂直/
注:最も正確な理由は悪い環境条件のcoordiantes(ストリートキャニオン、強い曇りなど)を要求することができるとは限りません。あなたのアプリはいつでもどこでも座標を取得する必要がありますか?それから、正確さの必要性を緩和する必要があります。
最後に、リクエストが成功した後、特定のしきい値を超えてはいけない座標の精度属性を確認することができます(アプリ要件に応じて)。この例:
var threshold = "APP-ACCURANCY-REQUIREMENT-NUMBER-HERE";
function requestLocation(callback) {
navigator.geolocation.getCurrentPosition(
function (position) {
console.log(position);
// Does this position fulfill the ACCURANCY-REQUIREMENT of your app? IF SO THEN STOP REQUESTING OTHERWISE REQUEST AGAIN
if (position.coords.accuracy < threshold) callback(position);
else requestLocation(callback);
},
function (err) {
console.log(err);
},
{
maximumAge: 60000,// IS A 1-MINUTE-COORDINATE TOO OLD WHILE DRIVING BY CAR? 130KM/hour -> 36 M/sec
timeout: 8000 ,// IS A WAITING-TIME OF 8 SECONDS TOO LONG WHILE DRIVING BY CAR?
enableHighAccuracy: true // YES, THIS ATTRIBUTE MUST BE SET TO TRUE
}
);
}
requestLocation(function (position) {
// position that has got an accuracy less than ACCURANCY-REQUIREMENT
console.log('request accurate position', position);
});
・ホープ、この「物語」は、あなたと幸運に役立ちます!
ありがとう、非常に興味深い。私はWi-FiとGPSを無効にしようとしたので、モバイルデータ(4G +)を使用すると思ったが、100秒でも失敗する。これについて何か知っていますか? – Destal
あなたは大歓迎です。その瞬間に携帯電話に「位置情報源」がないように聞こえる。私の知る限り、GPS-Symbol(ヘッダの設定バーにあるSymbol)はシステム全体のローカリゼーションを表しているため、非アクティブ化されているときにはアプリはその位置を要求できません。私のテスト - アンドロイドフォンで – Blauharley
(ロリポップ)無線LANを無効にし、私はあなたの携帯電話との同じを推測するように、ローカリゼーションの観点で活性化モバイル・データを保持するオプションはありません。どちらの場合でも、電話機は、到達時間(信号伝播時間、gps)または受信信号強度(それぞれWi-Fiおよびモバイルデータ)のいずれかの信号メトリックを使用してローカライズすることしかできません。お役に立てれば。 – Blauharley