JOH*_*OHN 4 javascript php gps jquery-mobile
我正在使用 jQuery Mobile 和 PHP 开发一个应用程序。我没有使用 Phonegap 或其他框架。我需要找到用户的geolocation. 如果用户设备的 GPS 关闭,我将无法获取位置。现在我需要查找用户设备的 GPS 是否打开或关闭。
这就是我现在使用的。
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var lat=position.coords.latitude;
var long=position.coords.longitude;
}
Run Code Online (Sandbox Code Playgroud)
无法检查设备是否有 GPS 模块或者是否通过浏览器的 API 启用了该模块。例如,您的笔记本电脑会尝试根据 IP 地址来估计位置,但准确性非常差。
但是,您可以使用一个对于许多应用程序来说可能足够好的技巧:不使用getCurrentPosition(),而是将watchPosition()函数与options对象一起使用{ enableHighAccuracy: true },并设置测量必须达到的准确度阈值,以便您接受它作为最有可能的结果。基于 GPS 模块的结果。
当您开始收听设置为 true 的情况时,会发生什么情况watchPosition():enableHighAccuracy如果 GPS 模块可用,API 会让它知道您正在尝试获取测量值,并且在几秒钟后,准确距离将从非常高(通常为数千米 - 基于 IP 地址、手机信号塔三角测量等)到非常低(几米 - 基于 GPS),这意味着 GPS 已启动。如果精度保持在数百或数千米,这可能意味着没有可用的 GPS 模块。
这是该字段附带的对象的文档GeolocationCoordinates(传递给 的回调中的结果) 。我写了一篇较长的文章,其中还包含一个代码片段,展示了我如何在 React 中使用 API。watchPosition()accuracy