zoukankan      html  css  js  c++  java
  • 微信企业号开发:微信考勤百度地图定位,错误修正二

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


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


  • 相关阅读:
    oracle数据库迁移---windows环境下
    Tomcat内存溢出(java.lang.OutOfMemoryError: PermGen space)
    64位win系统上面tomcat6启动不了 window不能再本地计算机启动
    linux学习之一些琐碎知识点
    mysql备份与还原
    linux学习中遇到的各种故障与解决方法
    Jmeter调试工具---Debug Sampler
    python+requests接口自动化测试框架实例详解教程
    互联网架构的演变
    面试时如何考察应聘者的素质?
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8511589.html
Copyright © 2011-2022 走看看