我正在尝试获取我存储在parse.com中的纬度和经度双值数组。我希望能够将这些转换回CLLocationCoordinates,然后我可以使用它在自定义表视图中创建MKPloylines。 但是我不太确定如何存储一系列CLLocationCoordinates。 这是我的代码:
_latitudeArray = [object objectForKey:@"latitude"];
[_parseLatitudeArray addObject:_latitudeArray];
_longitudeArray = [object objectForKey:@"longitude"];
[_parseLongitudeArray addObject:_longitudeArray];
for (int i=0; i < [_parseLatitudeArray count]; i++) {
_latitude = [self.parseLatitudeArray objectAtIndex:i];
_longitude = [self.parseLongitudeArray objectAtIndex:i];
CLLocationCoordinate2D coordinates [[_latitude count]];
for (int i = 0; i < [_latitude count]; i++) {
CLLocationCoordinate2D coordinate;
double latitude = [[_latitude objectAtIndex:i] doubleValue];
double longitude = [[_longitude objectAtIndex:i] doubleValue];
coordinate.latitude = latitude;
coordinate.longitude = longitude;
coordinates[i] = coordinate;
}
[_coordinatesArray addObject:coordinates];
}
NSLog(@"coordinates array = %@", _coordinatesArray);
起初我认为我可以使用[_coordinatesArray addObject:coordinates]来做到这一点;但后来意识到这不起作用!
我可能会遗漏一些非常基本的东西,但任何帮助都会受到赞赏。 感谢
编辑: 属性定义:
@property NSMutableArray *latitudeArray;
@property NSMutableArray *parseLatitudeArray;
@property NSMutableArray *longitudeArray;
@property NSMutableArray *parseLongitudeArray;
@property NSMutableArray *coordinatesArray;
@property NSArray *latitude;
@property NSArray *longitude;
@property CLLocationCoordinate2D *coordinates;
答案 0 :(得分:1)
不是创建结构的C数组,而是将每个结构包装到一个对象中并将其添加到NSMutableArray中。因此,在创建坐标后,只需:
[coordinatesArray addObject: [NSValue valueWithMKCoordinate:coordinate]];
让价值回归:
CLLocationCoordinate2D coordinate;
[coordinatesArray[i] getValue:&coordinate];
所以,假设self.latitude和self.longitude是NSStrings的NSArrays:
//only property is now
@property (nonatomic, strong) NSArray * locations
-(void) loadCoordinatesFromParse {
NSDictionary * parseData;
//load parseData from Parse here
NSMutableArray * coordinates = [NSMutableArray array];
NSArray * latitudes = [parseData objectForKey:@"latitude"];
NSArray *longitudes = [parseData objectForKey:@"longitude"];
for (int i = 0; i < [latitudes count]; i++) {
double latitude = [latitudes[i] doubleValue];
double longitude = [longitudes[i] doubleValue];
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(latitude, longitude);
[coordinates addObject: [NSValue valueWithMKCoordinate:coordinate]];
}
NSLog(@"coordinates array = %@", coordinates);
self.locations = [NSArray arrayWithArray: coordinates];
}