创建CLLocation坐标数组

时间:2014-03-12 21:01:53

标签: ios objective-c

我正在尝试获取我存储在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;

1 个答案:

答案 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];
}