javascript - 地理定位 HTML5 API enableHighAccuracy :True does not force GPS to turn on om Android devices

标签 javascript android gps w3c-geolocation

我正在构建一个需要从用户手机获取高精度位置信息的移动网站。 我使用 HTML5 Geolocation .watchPosition 函数和 enableHighAccuracy: true

在 IOS 设备上测试时,代码强制 GPS 打开并返回高精度数据 (4m),但是当我尝试使用我的 MotoX (kitkat) 和 Nexus 5 时,位置符号 出现在手机顶部栏,返回的精度很低(100 米)。

我还注意到,即使是 www.maps.google.com 也无法初始化我手机的 GPS(仅使用来自 wifi+ 网络的推断位置),尽管所有 native 应用程序(包括谷歌地图应用程序)都可以使用它和我的手机的定位模式设置为“高精度”。

我已经在以下打开和关闭 wifi 的 Android 浏览器上对此进行了测试,结果相同: - Chrome , -歌剧经典 -歌剧 -海豚

我的 JS conde:

navigator.geolocation.watchPosition(success,fail,
        { enableHighAccuracy: true,
         //timeout: 100000,
        //maximumAge: 0 
        });

成功函数是:

function success(pos) {// Location was found
        //set global variables with coordinates
        globalLat=pos.coords.latitude;
        globalLng=pos.coords.longitude;
        $("#precision").html=pos.coords.accuracy;
        alert(pos.coords.accuracy);
        //create google location from coordinates
        latlng=new google.maps.LatLng(globalLat, globalLng);
        //send location to server and get response every 6 seconds;
        setInterval(function(){SendAndGetLocation();}, 6000);
        //create map or update it's center in case it was already created
        if(googleMap===undefined){
            createMap();
        }else{
            googleMap.setCenter(latlng); 
        }
        //Draw user's location on map
        drawLocalMarker(globalLat, globalLng);
    }

谁能想到会发生什么?

干杯

最佳答案

不要被 GPS 误导,我的意思是不要假设它会为您提供准确的结果,请考虑应用程序被逻辑删除或设备进入休眠状态,在这种情况下,网络提供商的准确性有时会更高准确,我自己也在做类似的事情,出于这些原因放弃了高精度

http://www.andygup.net/how-accurate-is-html5-geolocation-really-part-2-mobile-web/ 和这个 http://www.andygup.net/six-most-common-use-cases-for-android-gps/

关于javascript - 地理定位 HTML5 API enableHighAccuracy :True does not force GPS to turn on om Android devices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24296481/

相关文章:

javascript - DOM 元素删除时是否删除 jquery 插件

javascript - 强制编号

android - 在哪里可以找到 `Warnings found during shrinking` 的警告?

c# - 如何动态不呈现脚本标签?

java - 如何将字符串中的 double 据转换为在 android studio 上的 TextView 上设置

android - 如何在 Android Wear 中检测省电模式?

python - 在 map 内联(Jupyter)上绘制坐标的最快方法是什么?

android - 如何获得更准确的位置?

objective-c - 用于过滤掉无效/不准确位置的 iOS 位置服务方法

javascript - 如何比较不同函数或同一函数的两个不同值?