【问题标题】:Phonegap: How to use geolocation without GPS in android and enableHighAccuracy: truePhonegap:如何在没有 GPS 的情况下在 android 中使用地理定位和 enableHighAccuracy:true
【发布时间】:2013-11-25 21:45:22
【问题描述】:

我在 build.phonegap.com 的应用程序中使用地理定位,但我有一点问题(或疑问)关于如何在没有启用 GPS 的情况下在 android 中使用它。

在 android 中使用此代码,它在设备中启用 GPS,它工作正常,但禁用 gps,代码给出错误(我的脚本中的默认错误)

watchID=navigator.geolocation.getCurrentPosition(handle_geolocation_query, handle_errors, {timeout: 600000, enableHighAccuracy: true});
}

function handle_errors(error)
{
    switch(error.code)
    {
        case error.PERMISSION_DENIED: window.localStorage.setItem("geo_aviso", "latitud", position.coords.latitude);
        break;

        case error.POSITION_UNAVAILABLE: window.localStorage.setItem("geo_aviso", "No podemos encontrar localizaión verifica que la tienes activada en tu dispositivo");
        break;

        case error.TIMEOUT: window.localStorage.setItem("geo_aviso", "Tiempo de espera agotado para encontrar tu localización vuelve a entrar en la app");
        break;

        default: window.localStorage.setItem("geo_aviso", "No podemos detectar tu localización, comprueba que tienes el GPS activado en tu dispositivo");
        break;
    }
}

function handle_geolocation_query(position){
    if (position.coords.latitude!=null)
    {
        some code here
    ;}

如果我在不使用 enableHighAccuracy: true 的情况下使用相同的代码,则会在两种情况下(启用和未启用 gps)都提供地理位置,但从不使用 GPS。

这是预期的结果还是我必须使用不同的代码?

另一个问题是,当 GPS 可用但应用无法获取位置时(如果您不在露天),则不会给出位置(它必须根据移动网络或 wifi 给出位置)

在 android 中测试:4.3 (HTC One)

【问题讨论】:

    标签: android cordova geolocation gps


    【解决方案1】:

    这对我来说显然是预期的结果。正在发生的事情是,您的设备在幕后足够智能,可以循环通过所有方式来获取当前位置,从最准确到最不准确。

    1. 全球定位系统
    2. wifi 位置(最近接入点的位置)
    3. 手机信号塔位置(您当前连接的手机信号塔的已知位置)

    如果您禁用 gps 定位,设备将继续在此列表中向下移动,直到找到有效的定位方法。您可以通过查看位置对象返回的“准确度”属性最容易地判断这一点。根据我的经验,精度

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多