javascript - 从硬件 GPS 获取坐标

标签 javascript php android geolocation gps

我发现了很多关于 GPS 坐标的问题,但没有一个确认使用移动硬件 GPS 而不是网络 GPS,如 geoLocation 等。

我的实际方法:

我正在使用 navigator.geolocation.getCurrentPosition()Lat/Long 来自网络,代码如下:

function getGPS(funcCallBack)
{
   if (navigator.geolocation)
   {
     var timeoutVal = getCookie("GPSTimeout");
     navigator.geolocation.getCurrentPosition(sucess
                                             ,error
                                             ,{enableHighAccuracy: true
                                              ,timeout: timeoutVal
                                              ,maximumAge: 0}
                                             );
   }
   else{
   alert('GPS is turned off, or was not possible to find it. Now, doing the login without localization.');
   window.gpsLat = 0;
   window.gpsLng = 0;
   window.gpsAcc = 0;
   funcCallBack();
   }
   function sucess(position) //sucess
   {
      window.gpsLat = position.coords.latitude;
      window.gpsLng = position.coords.longitude;
      window.gpsAcc = position.coords.accuracy;
      funcCallBack();
    }
    function error()         //error
    {
      window.gpsLat   = 0;
      window.gpsLng   = 0;
      window.gpsAcc   = 0;
      funcCallBack();
    }
}

我的问题:

有时,当我登录时,我没有得到 GPS 坐标(它们变为 0),有时我得到的坐标精度超过 2,000(这不精确)。

顺便说一句,我正在数据互联网服务上测试 GPS,当我使用 Wi-Fi 连接时,它可以完美运行,准确度低于 100。

详细信息:

也许你在提示:

  1. timeoutVal:它是一个cookie,里面有数字5000
  2. funcCallBack:继续登录操作的函数。
  3. window.gpsLat:它是一个全局变量,包含从 geoLocation 获取的 Latitude 值。
  4. window.gpsLng:它是一个全局变量,包含从 geoLocation 获取的 Longitude 值。
  5. window.gpsAcc:它是一个全局变量,包含从 geoLocation 获取的 Accuracy 值。

我想要什么?

我想要一个 JavaScript 或 PHP 解决方案,可以从移动硬件设备、本地 GPS 而不是地理定位获取坐标,并且当本地 GPS 关闭时,要求用户将其打开。

最佳答案

您应该使用 javascript 而不是 PHP 获取位置。 PHP 只能进行 IP 查找,这是确定位置的最不准确的方法。

navigator.geolocation.getCurrentPosition() 的工作方式是使用当前可用的最准确数据。如果是移动设备,它将首先使用 GPS(如果启用),然后是 wi-fi。

如果启用了本地 GPS,javascript 将访问该数据而不是 wi-fi 数据,但如果 GPS 数据不可用,则无法阻止对 wi-fi 数据的检查。

您最好的解决方案是检查精度字段,如果它不在您满意的范围内,请要求用户启用 GPS。

或者,如果您正在构建混合应用程序,大多数框架(PhoneGap 等)都具有直接查询设备 GPS 的 API。 Use PhoneGap to Check if GPS is enabled

关于javascript - 从硬件 GPS 获取坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422239/

相关文章:

Javascript向上箭头按键不触发

javascript - 如何在JavaScript中使用$ {var}变量?

php - 只显示登录用户的记录

android - 如何删除android中的联系人?

javascript - 是否可以使用源映射通过 NativeScript 生成可用的堆栈跟踪(例如使用 Crashlytics)

javascript - 如何显示 HTTP 401 基本身份验证对话框

javascript - 如何使用 PHP 从 SQL Server 填充 HTML 表单字段

php - FedEx shipping api 在印度国内有效吗

android - Android Studio Canary 中的 Kotlin Android 扩展错误

android - 如何将 DiffUtil.Callback 与具有页眉和页脚的 RecyclerView 一起使用?