我需要计算在我的计划是所有的GPS参数,所以我使用这段代码:如何在同一时间计算从CLLocationManager所有的GPS数据
(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
CLLocation* loc = [locations lastObject];
它收集所有的GPS测量(高度,速度等等)在loc对象中,我有经纬度信息(loc.coordinate.lattitude
和loc.coordinate.longitude
),但这些是新测量的坐标。
由于我还想计算测量之间的距离,我如何从didUpdateLocations
方法中检索“新”坐标和“旧”坐标?
如果我添加其他的LocationManager调用与程序的didUpdateToLocation方法(这将给新老坐标):
(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
最初的LocationManager方法(didUpdateLocations)完全不叫,所以我不能计算所有GPS数据加上距离...
您列出的第二种方法是弃用 - 取代第一种,但如果您执行它,然后第一个方法不会被调用 - 就像你找到的那样。您需要将以前的位置存储在一个属性中,并在下次调用时根据此比较/计算 – Paulw11 2014-10-04 10:21:54
由于我是iOS编程的新手,我如何将位置对象复制到另一个对象(即旧位置) CLLocationManage(所以我可以比较下一个CLLocationManager方法调用的最新位置数据)?我可以访问loc对象的lat/long属性,但我将调用的CLLocationDistance方法需要对象作为参数,而不是属性。 – DaliGR 2014-10-04 16:43:05
只需创建一个属性为您的类存储CLLocation – Paulw11 2014-10-04 21:48:17