从硬件GPS获取坐标

Pau*_*osa 9 javascript php gps android geolocation

我发现了很多关于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();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

有时当我登录时,我没有获得GPS坐标(它们来自0),有时我得到的坐标超过2,000精度(这不准确).

顺便说一句,我在数据互联网服务上测试GPS,当我使用Wi-Fi连接时,它的工作效率低于100精度.

细节:

也许你在抱怨:

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

我想要什么?

我想要一个JavaScript或PHP的解决方案,可以从移动硬件设备,本地GPS,而不是地理位置获取坐标,当本机GPS关闭时,要求用户打开它.

edd*_*iec 11

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

方法navigator.geolocation.getCurrentPosition()是使用当前可用的最准确数据.在移动设备的情况下,如果启用它将首先使用GPS,然后使用Wi-Fi.

如果启用了原生GPS,javascript将访问该数据而不是wi-fi数据,但如果GPS数据不可用,则无法阻止对Wi-Fi数据的检查.

您最好的解决方案是检查准确性字段,如果它不在您要求用户启用GPS的范围内.

或者,如果您正在构建混合应用程序,大多数框架(PhoneGap .etc.)都有API来直接查询设备GPS.使用PhoneGap检查GPS是否已启用