亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

geoloc.getCurrentPosition有時不起作用

geoloc.getCurrentPosition有時不起作用

geoloc.getCurrentPosition有時不起作用因此,我有一個非常簡單的JS使用導航器.geolocation.getCurrentPoitationjammy。$(document).ready(function(){   $("#business-locate, #people-locate").click(function() {     navigator.geolocation.getCurrentPosition(foundLocation, noLocation);   });   navigator.geolocation.getCurrentPosition(foundLocation, noLocation);   function foundLocation(position) {     var lat = position.coords.latitude;     var lon = position.coords.longitude;     var userLocation = lat + ', ' + lon;     $("#business-current-location, #people-current-location").remove();     $("#Near-Me")       .watermark("Current Location")       .after("<input type='hidden' name='business-current-location' id='business-current-location' value='"+userLocation+"' />");     $("#people-Near-Me")       .watermark("Current Location")       .after("<input type='hidden' name='people-current-location' id='people-current-location' value='"+userLocation+"' />");   }   function noLocation() {     $("#Near-Me").watermark("Could not find location");     $("#people-Near-Me").watermark("Could not find location");   }})//end DocReady基本上,我們得到的是當前位置,如果得到了,兩個“水印”放置在兩個字段中,上面寫著“當前位置”,兩個隱藏字段是以長數據作為值創建的(它們在開始時被刪除,這樣它們就不會每次都被復制)。還有兩個按鈕有一個點擊函數綁定到它們來做同樣的事情。不幸的是,每隔三次左右,它就起作用了。這里有什么問題?
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我一直在一點兒沒錯同樣的問題,在網上幾乎找不到任何關于它的信息。書上什么都沒有。最后,我在堆棧溢出和(ha!)上找到了這個清醒的查詢。這是我在這里設立賬戶所需要的最后動力。

我有一個部分的答案,但遺憾的是,不是一個完整的答案。

首先,要意識到默認超時對于getCurrentPosition是無限(!)這意味著您的錯誤處理程序將不叫如果getCurrentPosition掛在后端的某個地方。

要確保獲得超時,請將可選的第三個參數添加到getCurrentPosition調用中,例如,如果您希望用戶等待不超過10秒才能提示發生了什么,請使用以下命令:

navigator.geolocation.getCurrentPosition(successCallback,errorCallback,{timeout:10000});

其次,在不同的情況下,我經歷了完全不同的可靠性。在家里,我會在一兩秒鐘內得到一個回調,雖然精度很低。

然而,在工作中,我的行為發生了非常奇怪的變化:地理定位在一些計算機上一直都在工作(當然IE除外),其他的只在Chrome和Safari中工作,而不使用Firefox(壁虎問題?),其他的只工作一次,然后就失敗了-這種模式每天都在一小時地變化。有時你有一臺“幸運”的電腦,有時卻沒有。也許在滿月時宰殺山羊會有幫助?

我不知道這件事,但我懷疑后端基礎設施比宣傳的要不均衡。在推動這一功能的各種宮浩書籍和網站中。我真的希望他們能更直截了當地說出這個特性有多不穩定,而且如果希望錯誤處理程序正常工作,超時設置是多么重要。.

我今天一直在嘗試向學生們傳授這些東西,我自己的電腦(在投影機和幾個大屏幕上)默默地失敗了,而大約80%的學生幾乎馬上就得到了結果(使用完全相同的無線網絡)。當我的學生也在打字和其他錯誤,當我自己的個人電腦也在失敗的時候,解決這些問題是非常困難的。

不管怎么說,我希望這能幫到你們中的一些人。謝謝你的精神健康檢查!


查看完整回答
反對 回復 2019-07-12
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

這是我要解決的問題,至少在當前的所有瀏覽器中都能工作(在Windows上,我沒有Mac):

if (navigator.geolocation) {
    var location_timeout = setTimeout("geolocFail()", 10000);

    navigator.geolocation.getCurrentPosition(function(position) {
        clearTimeout(location_timeout);

        var lat = position.coords.latitude;
        var lng = position.coords.longitude;

        geocodeLatLng(lat, lng);
    }, function(error) {
        clearTimeout(location_timeout);
        geolocFail();
    });} else {
    // Fallback for no geolocation
    geolocFail();}

如果有人在Firefox上單擊“關閉”或選擇“NO”或“從不共享”選項,這也會有效。

笨重但有效。


查看完整回答
反對 回復 2019-07-12
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

我每次都這樣:

navigator.geolocation.getCurrentPosition(getCoor, errorCoor, {maximumAge:60000, timeout:5000, enableHighAccuracy:true});

雖然不是很準確。有趣的是,在同一臺設備上,如果我運行這臺設備,它會把我推到100米左右(每次),但如果我去谷歌地圖,它就能準確地找到我的位置。因此,盡管我認為enableHighAccuracy:true有助于它持續工作,但它似乎并不能使它更加準確.


查看完整回答
反對 回復 2019-07-12
  • 3 回答
  • 0 關注
  • 1407 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號