2012-08-14 27 views
2

如何在NSMutableArray中存儲多個點(經度和緯度)?在NSMutableArray中存儲經度和緯度Xcode

+0

請搜索,發佈問題之前。這是一種創建二維數組的方法http://stackoverflow.com/questions/724772/2d-arrays-in-objective-c – 2012-08-14 11:02:29

+0

@SharonNathaniel這不是一個關於二維數組的問題。經度和緯度不是整數,它們不能用作數組的指示。 – joerick 2012-08-14 11:28:59

回答

1
//NSMutable array to store values 
NSMutableArray *array =[[NSMutableArray alloc] init];  
//some lat and long values 
NSDictionary *latLongDict = @{@"lat" : @(18.25689), @"long":@(48.25689)}; 

//add the objects to the array 
[array addObject:latLongDict]; 
+0

如果你要這樣做,NSNumber會更合適。但在我看來,把這個對作爲單獨的實體存儲在數組中是沒有意義的。 – joerick 2012-08-14 11:26:31

6

你有幾種選擇:

我推薦後者,因爲你可能會發現你需要CLLocation la上的額外功能之三。

-1

使用Mapkit框架,您可以通過位置與它們的緯度找到附近沿着當前的位置&經度上陣列

CLLocationCoordinate2D location; 
location = [mMapView.userLocation coordinate]; 

if(iLat && iLng) 
{ 

    location.latitude = [iLat floatValue]; 
    location.longitude = [iLng floatValue]; 
} 

儲值

NSMutableArray *a= [[NSMutableArray alloc] initWithObjects:location.latitude,location.longitude, nil]; 
+0

緯度和經度是雙打的,而不是對象。 – joerick 2012-08-14 11:29:32

+0

而你的第一個例子沒有意義。這是什麼? – joerick 2012-08-14 11:31:20

0

你可以存儲中的數據字典對象:

NSMutableArray *locationArray =[[NSMutableArray alloc] init]; 

//some lat and long values 
CGFloat latitude = 18.25689; 
CGFloat longitude = 48.25689; 

NSDictionary *locationDict = @{ @"latitude" : [NSNumber numberWithFloat:latitude], @"longitude" : [NSNumber numberWithFloat:longitude] }; 

[locationArray addObject:locationDict]; 

,並通過訪問它們:

NSUInteger anIndex = 0; 
NSDictionary *locDict = [locationArray objectAtIndex:anIndex]; 
NSNumber *latitudeNumber = (NSNumber *)[locDict objectForKey:@"latitude"]; 
NSNumber *longitudeNumber = (NSNumber *)[locDict objectForKey:@"longitude"];