iphone按时间间隔获取用户位置

Posted

技术标签:

【中文标题】iphone按时间间隔获取用户位置【英文标题】:iphone getting user location at time intervals 【发布时间】:2011-07-08 00:01:49 【问题描述】:

我浏览了 *** 中的一些问题,但无法获得清晰的画面。我正在开发一个 iPhone 应用程序,该应用程序涉及通过 GPS 获取用户的位置并根据我获得的值进行处理。我只是想确定我应该如何实现这个?使用这种方法:

[locationManager startUpdatingLocation]

给了我准确的位置,但它经常更新,我不想要。我想定期获取用户的位置,即每 2 分钟一次。我该如何实施?

我想到的方法(10秒间隔):

- (void)viewDidLoad  
    self.locationManager = [[CLLocationManager alloc] init]; 
    locationManager.delegate = self; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    locationManager.distanceFilter = kCLDistanceFilterNone;
    NSTimer *currentTimer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(theActionMethod) userInfo:nil repeats:YES];

在计时器的操作方法中:

- (void)theActionMethod 
     [locationManager startUpdatingLocation];

以及方法didUpdatetoLocation:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
     self.startingPoint = newLocation;
     NSString *latitudeString = [[NSString alloc] initWithFormat:@"%g\u00B0", newLocation.coordinate.latitude];
     NSLog([@"Latitude : " stringByAppendingString:latitudeString]);
     [latitudeString release];
     [locationManager stopUpdatingLocation];

现在我得到的值始终保持不变。每 10 秒更新一次位置,但所有值保持不变(我尝试打印经度、水平精度、高度、垂直精度等)。所以请帮助我如何每 2 分钟获得一次用户的准确位置(至少有点准确,因为我知道 GPS 不准确)。

而且我也想知道如何实现monitoringRegions 和significantlocationchange 的事情。有人成功实施了吗?我做不到。我没有注意到任何变化(我在 didEnterRegion 中打印了一些内容,即使我来回进出该区域也从未打印过)。提前非常感谢。

【问题讨论】:

这是两个问题;你应该问两个不同的问题。而且您的 monitoringRegions 太笼统了-到底什么不起作用?现在,回到您的主要问题:您是否在汽车/火车/公共汽车/飞机/船上进行测试,以便实际位置每 10 秒更改一次?如果您只是坐在办公桌前,则 GPS 位置每次都相同(在初始归零后)。 我应该把它当作 2 个问题来问。无论如何,我不确定 monitorRegions 是如何工作的。比如它多久更新一次?移动时,考虑我们在 10 秒内穿越区域(在 10 秒内进出),它会通知我吗?我正在通过进出我的近似监控区域进行测试。 您期望的准确度是多少?我不知道确切的限制,但 100 米可能很接近。换句话说,GPS 将无法(准确地)确定您仅移动了 75 米。 【参考方案1】:

只要做你已经在做的事情。只需忽略委托方法并更改theActionMethod: 以使用您想要的locationManager.location 属性。

【讨论】:

嗨,只是想了解更多关于工作的信息..所以您是否打算说可以删除委托方法,只需使用locationManager.location 获取theActionMethod 中的更新位置值?您能否指出任何可以帮助我学习这样做的资源,或者如果您可以编辑如何做到这一点,那就太好了。谢谢。

以上是关于iphone按时间间隔获取用户位置的主要内容,如果未能解决你的问题,请参考以下文章

使用 iphone 核心位置数据计算距离

监控 CLLocationManager 重大位置更改时应用程序不会重新启动 - iPhone

如何通过iphone应用程序中的代码获取用户的当前位置?

如何在iphone上的地图中获取当前位置

Iphone模拟器没有获取位置

iPhone Mapkit 蓝点/用户位置区域缩放问题