首页 文章

用户位置没有互联网时的GPS坐标

提问于
浏览
1

对于我的应用程序,当设备中没有互联网连接时,我需要访问GPS纬度和经度坐标 . 我使用CLLocation来实现这一目标 . 但是,当我关闭wifi和互联网设备locationmanager显示

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSLog(@"didFailWithError %@", error);

}

我得到的错误是错误域= kCLErrorDomain代码= 0“操作无法完成”

一旦我获得了正确的用户位置,当用户从当前位置移动时如何刷新应用程序?

我已经下载了本教程的代码http://www.vellios.com/2010/08/16/core-location-gps-tutorial/但是我得到了同样的错误 .

任何人请让我知道如何在离线时实现GPS,没有互联网 . 谢谢

2 回答

  • 0

    位置服务如何确定您的位置的基础知识Apple iOS使用三阶段算法来确定您的位置:

    • 辅助全球定位系统(A-GPS)

    • Crowdsourced Wi-Fi

    • 蜂窝网络搜索

    这三个阶段按优先级降序使用 . 换句话说,iOS首先尝试使用GPS卫星链接来修复您的位置 . 如果无法获取卫星,iOS将故障转移到Wi-Fi . 如果您未连接到Wi-Fi局域网(WLAN),则iOS会使用手机信号塔数据 . 如果上述所有操作都失败,则会收到错误消息,例如下图中显示的内容 .

    辅助GPS(A-GPS)缩短了GPS客户端设备获取与卫星连接的时间 . 例如,我等待Garmin GPS训练 Watch 连接到卫星时,我的晨跑有时会延迟几分钟 . 想象一下,等待几分钟让iPhone连接GPS会有多痛苦!

    从本质上讲,您的iDevice会缓存卫星数据的定期快照,以加快连接时间 . 显然,当您在室外并远离高层建筑甚至车辆内部等干扰源时,您将观察到最快的GPS性能 .

    众包Wi-Fi意味着您的iDevice不仅会再次缓存有关您当前连接的WLAN的信息,还会关注设备范围内任何其他WLAN的信息 . 通过在本地存储WLAN服务集标识符(SSID)和媒体访问控制(MAC)地址信息,这允许iOS位置服务通过三角测量更快地精确定位您的位置 .

    我们的想法是,如果iOS检测到您已连接到家庭WLAN并且已经具有该位置的全球定位坐标,则位置服务可以显示您的位置,而无需通过GPS连接或Wi-Fi三角测量 .

    蜂窝网络搜索再次涉及“三角测量”的概念,这次iOS使用有关您附近蜂窝塔的缓存信息 . 顺便说一下,三角测量是一种几何原理,通过从固定基线任一端的已知点测量点的位置来确定点的位置 . 例如,iOS可以通过测量iDevice与附近的多个手机信号塔之间的距离来估算您的位置 .

  • 1

    你试过这个吗?

    [locationManager setDistanceFilter:kCLDistanceFilterNone];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    

相关问题