微信企业号开发:微信考勤百度地图定位,错误修正二详解手机开发

在之前的博客中微信企业号开发:微信考勤百度地图定位,错误修正介绍了一种修正百度地图错误的方法,就是使用高德地图修正。但经过近一年,近两千人的使用发现,在百度地图出现定位错误时,通过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();        
    }

这样修改了后,问题很少了,实际中有时真的不必纠结为是否知道真正的原因,简单粗暴的方法也许是最有效的。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5292.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论