微信企業號開發:微信考勤百度地圖定位,錯誤修正二
在之前的博客中微信企業號開發:微信考勤百度地圖定位,錯誤修正介紹了一種修正百度地圖錯誤的方法,就是使用高德地圖修正。但經過近一年。近兩千人的使用發現,在百度地圖出現定位錯誤時,通過HTML5獲取的經緯度都是空,也就是獲取不到經緯度。因此能夠採用HTML5獲取的經緯度來糾正百度地圖的錯誤。假設HTML5獲取的經緯度為空。百度地圖獲取的位置肯定是錯誤的。但這樣的情況在測試時,非常少出現,但假設大量使用。出現的頻率就非常高了。
但假設出現HTML5獲取經緯度失敗的情況怎樣處理呢?也就是出現讀取經緯度失敗時怎樣處理?
function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition, onError, optionsGps); } else { alertInfo(‘您的手機如今還不支持定位功能。‘); } } function onError(error) { switch (error.code) { case 1: $("#address").val("位置服務被拒絕,請確認打開了GPS。假設打開了GPS,請刷新重試。"); break; case 2: $("#address").val("臨時獲取不到位置信息,請刷新重試。
"); break; case 3: $("#address").val("獲取信息超時,請刷新重試。"); break; case 4: $("#address").val("未知錯誤,請刷新重試。"); break; } }
非常長一段時間。常常有同事告訴我微信考勤定位有問題,都是Android手機,蘋果手機沒有發現。
在定位有問題的手機中,各個品牌的手機都有。並且不是必現。有時出現,有時不出現,非常難找到詳細的原因,但由於考勤和工資掛鉤,又不能不解決。
怎樣處理?找先關的文檔,僅僅說了會出現上邊的幾種錯誤。詳細是什麽原因,沒有詳細的解釋,怎樣解決也沒有人給出答案。每次出現故障。我僅僅能讓他們退出微信,重新啟動手機等方法重試。有時能解決,有時不能解決,一直找不到原因,也沒有解決。
但我發現有時刷新又一次獲取就能夠得到了。忽然想明確了,既然不知道原因,為什麽要知道原因呢?再次自己主動獲取不能行了?
function onError(error) { switch(error.code){ case 1: $("#address").val("位置服務被拒絕,請確認打開了GPS,假設打開了GPS。請刷新重試。"); break; case 2: $("#address").val("臨時獲取不到位置信息,請刷新重試。"); updateLocation(); break; case 3: $("#address").val("獲取信息超時,請刷新重試。"); updateLocation(); break; case 4: $("#address").val("未知錯誤。請刷新重試。"); break; } } function updateLocation() { getLocation(); }
這樣改動了後,問題非常少了,實際中有時真的不必糾結為是否知道真正的原因,簡單粗暴的方法或許是最有效的。
微信企業號開發:微信考勤百度地圖定位,錯誤修正二