我在 plist 中有一长串带有纬度和经度的地方。我想仅在用户当前位置的 X 距离内显示地点的 tableView。有没有办法从 plist 文件中的 lats & longs 创建对象,以便我可以使用“distanceFromLocation”?更重要的是,如何让数组只显示与当前距离小于 X 的名称?我假设我需要从 plist 中的 lats & longs 制作一系列对象,然后如果 objects distanceFrom 小于 X,则在数组中创建一个对象,对吗?
请帮忙。
这就是我现在的位置:我在双 clubLatitude 线上遇到错误
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *clubArray = [NSArray arrayWithObjects:[self danceClubLocation], nil];
self.tableData = clubArray;
}
-(CLLocation *)danceClubLocation
{
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
NSArray *array = [NSArray arrayWithContentsOfFile:plistPath];
NSEnumerator *e = [array objectEnumerator];
id object;
while ((object = [e nextObject])) {
double clubLatitude = [[array valueForKey:@"Latitude"] doubleValue];
double clubLongitude = [[array valueForKey:@"Longitude"] doubleValue];
CLLocation *clubLocation = [[CLLocation alloc] initWithLatitude:clubLatitude longitude:clubLongitude];
if ([clubLocation distanceFromLocation:myLocation]<=50) {
return clubLocation;
}
else return nil;
}
return nil;
}
-(CLLocation *)myLocation
{
CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
NSNumber *myLatitude = [NSNumber numberWithDouble:coordinate.latitude];
NSNumber *myLongitude = [NSNumber numberWithDouble:coordinate.longitude];
double myLatitudeD = [myLatitude doubleValue];
double myLongitudeD = [myLongitude doubleValue];
myLocation = [[CLLocation alloc]initWithLatitude:myLatitudeD longitude:myLongitudeD];
return myLocation;
}