用户位置GPS坐标,当没有互联网

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

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

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

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

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

任何人都请让我知道如何离线时,无需互联网的GPS。 谢谢

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

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

  2. 众包的Wi-Fi

  3. 蜂窝networkingsearch

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

辅助GPS(A-GPS)缩短了GPS客户端设备获取卫星连接所需的时间。 例如,我的早晨跑步有时会延迟几分钟,而我等待Garmin的GPS训练手表连接到卫星。 想象一下等待几分钟让你的iPhone连接GPS是多么的痛苦!

本质上,您的iDevicecaching卫星数据的定期快照,以加快连接时间。 很显然,当你在户外时,你会观察到最快速的GPS性能,远离干扰源,如高层build筑甚至车辆内部。

众包的Wi-Fi意味着您的iDevice不仅可以caching关于您当前连接的WLAN的信息,还可以关于您设备范围内的任何其他WLAN。 通过在本地存储WLAN服务集标识符(SSID)和媒体访问控制(MAC)地址信息,这使得iOS位置服务可以通过三angular测量更快地查明您的位置。

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

蜂窝networkingsearch再次涉及“三angular测量”的概念,这次iOS使用关于您附近蜂窝塔的caching信息。 顺便说一下,三angular测量是一个几何学原理,它通过测量固定基线两端已知点的angular度来确定点的位置。 例如,iOS可以通过测量您的iDevice和附近的许多蜂窝塔之间的距离来近似您的位置。

你尝试过吗?

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