如果准确的HTML 5地理定位需要太长时间,那就回落一下

时间:2014-02-24 12:37:37

标签: android html5 geolocation

我正在开发一个需要用户所在位置的网站。我目前正在使用enableHighAccuracy设置调用getCurrentPosition,它使用智能手机的GPS(如果可用)。除非用户在建筑物内部,否则这种方法很有效,这是不太准确的基于WiFi的位置的选择。主要问题是GPS修复可能永远不会发生。

如果确定准确的位置需要太长时间,我应该如何请求准确的(GPS)位置,以便返回不太准确的位置?

请注意,我确实需要GPS位置,如果我能得到它并且不能总是使用WiFi。

1 个答案:

答案 0 :(得分:1)

我的理解是enableHighAccuracy已经这样做了。 Geolaction High-Accuracy

  

用户也可能拒绝此功能,或者设备可能无法提供比未指定标志更准确的结果。

如果不是这种情况,你可以设置一个超时,如果GPS花费太长时间再次调用getCurrentPosition,并在错误回调中将enableHighAccuracy设置为false(使用不同的错误回调来避免循环)。

    
        navigator.geolocation.getCurrentPosition(success_callback, error_callback,{enableHighAccuracy : true, timeout: 50000});
        function error_callback(err){
            if(err.code==1){
             // user said no!
            }
            if(err.code==2){
             // position unavailable
            }
            if(err.code==3){
              // timeout
              navigator.geolocation.getCurrentPosition(success_callback, different_error_callback,{enableHighAccuracy : false});
            }
        }