使用GPS我知道字符串字符串如何分隔字符串中的纬度和经度< +37.33168900,-122.03073100> +/- 100.00m(速度-1.00 mp /航向-1.00)@ 2011-08-26 12:56:57 +0530
当我调用位置管理器时,这个方法称为
// Delegate method from the CLLocationManagerDelegate protocol.
- (void)locationManager:(CLLocationManager *)manage didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog@("%@",newLocation) //<+37.33168900, -122.03073100> +/- 100.00m (speed -1.00 mp / course -1.00) @ 2011-08-26 12:56:57 +0530
NSLog@("%@",oldLocation) //null
}
我的问题是如何保存我的旧位置以及如何使用newlocation和oldlocation如何计算我搜索谷歌的距离,但我找不到请帮助我。我非常努力如何保存oldLocation。
答案 0 :(得分:1)
您可以使用- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location
为了保存这两个位置,您应该使用属性。
答案 1 :(得分:0)
如果你想从字符串<+37.33168900, -122.03073100> +/- 100.00m (speed -1.00 mp / course -1.00) @ 2011-08-26 12:56:57 +0530
获得纬度和经度,你可以通过在第一个&lt;中找到它来获得正则表达式。 &GT;并用逗号分隔。如果您想以这种方式执行此操作,那么如何做到这一点,但SDK可为您提供更方便的阅读Location Awareness Programming Guide以获取更多信息。
答案 2 :(得分:0)
每当您开始观察您的位置时,此方法的第一次调用可能具有null的oldLocation。仅仅因为你的iPhone不知道它以前在哪里。
如果您在应用中多次开始和停止更新您的位置,并且您仍想知道最后一个位置是什么,只需保留一个代表您的oldLocation的静态对象,并在收到委托调用后更新它。
static CLLocation * myLastLocation;
- (void)locationManager:(CLLocationManager *)manage didUpdateToLocation:(CLLocation*) newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog@("Working with the new location: %@",newLocation);
// Save it as the old location
myLastLocation = newLocation;
// Your problem still exists that the first call will have myLastLocation == nil!
}