2012-11-21 58 views
0

我试图从我的经度和纬度获得距离,这些经度和纬度是存储在核心数据中的当前位置。我有这个代码,但我无法弄清楚如何集成代码以使用我存储在核心数据中的坐标。我如何使用存储在核心数据中的坐标来获取距用户位置的距离?感谢您的任何帮助!需要从存储的坐标到当前位置的距离

CLLocation *to = [[CLLocation alloc] 
        initWithLatitude:mapView.userLocation.coordinate.latitude 
        longitude:mapView.userLocation.coordinate.longitude]; 

CLLocation *from = [[CLLocation alloc] 
        initWithLatitude:mapView.userLocation.coordinate.latitude 
        longitude:mapView.userLocation.coordinate.longitude]; 

CLLocationDistance distance = [to distanceFromLocation:from]; 

_distance.text = [[NSString alloc]initWithFormat:@"%g",distance]; 

我得到我的核心数据坐标是这样的:

_buyLong.text = [[_itemDetailArray valueForKey:@"longitude"] description]; 
_buyLatitude.text = [[_itemDetailArray valueForKey:@"latitude"] description]; 

回答

1

想通了,所以希望有人能受益于:

NSString *savedLatitude = [[_itemDetailArray valueForKey:@"latitude"] description]; 
    double latDouble = [savedLatitude doubleValue]; 

NSString *savedLongitude = [[_itemDetailArray valueForKey:@"longitude"] description]; 
    double longDouble = [savedLongitude doubleValue]; 

NSLog(@"Value Lat: %f", latDouble); 
NSLog(@"Value Long: %f", longDouble); 

// Item Location from Array 
itemCoordinate.latitude = latDouble; 
itemCoordinate.longitude = longDouble; 

// User Location from Device 
[currentLocation stopUpdatingLocation]; 
theCoordinate.latitude = newLocation.coordinate.latitude; 
theCoordinate.longitude = newLocation.coordinate.longitude; 

CLLocation *loc = [[CLLocation alloc] initWithLatitude:theCoordinate.latitude longitude:theCoordinate.longitude]; 
CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:itemCoordinate.latitude longitude:itemCoordinate.longitude]; 

CLLocationDistance dist = [loc distanceFromLocation:loc2] *0.0006213; // Convert Meters to Miles 
NSString *distance = [NSString stringWithFormat:@"%.1f",dist]; 

NSLog(@"DIST in Miles: %f", dist); // Wrong formatting may show wrong value!} 

_distance.text = distance; 
相关问题