問題: 我的移動JavaScript應用程序不斷返回完全相同的座標,這些座標已經超過500米。準確性不是那麼重要。令我困擾的是,返回完全相同的座標。直到我訪問使用地理位置的外部網頁時,問題才得以解決。從那以後,我的應用程序正常運行。我懷疑不知何故,我的頁面緩存了一個不正確的位置,並且一旦瀏覽器檢測到一個新的站點正在請求位置,那麼該值就會被刷新。這只是我的理論。重置瀏覽器的地理位置值
問題: JavaScript是否緩存位置信息?如果是這樣,is there any known means of forcing a refresh?
上述解決方案在測試之外並不實用。
代碼:
navigator.geolocation.getCurrentPosition(processLocation,locationError,{
timeout: 60000,
enableHighAccuracy: true,
maximumAge: Infinity
});
function processLocation(position){
sendLocationToServer(position.coords.latitude,position.coords.longitude);
}
硬件:我使用的是iPhone和Safari網絡瀏覽器。我不認爲使用iPhone應該與我在Safari上的事實一樣重要,但我確實嘗試重置手機的位置和隱私設置。這並沒有解決問題,只是確保瀏覽器會再次提示我進行位置許可。
--update ---
它可能實際上是由 「enableHighAccuracy」 字段引起的。移除它解決了問題的第二次再次發生。當我找到更多的信息,爲什麼這個參數與它的預期效果相反,我會發布細節。
不要遞歸調用'getCurrentPosition' - 這就是'watchPosition'的用途。另外,在調用時將'enableHighAccuracy'設置爲true。 – 2014-09-01 13:11:23
是的。剛做了一個編輯。 – 2014-09-02 16:39:16