如何将动态位置数据加载到字典对象/数组中?

Posted

技术标签:

【中文标题】如何将动态位置数据加载到字典对象/数组中?【英文标题】:How do I load dynamic location data into a dictionary object/array? 【发布时间】:2012-03-22 22:15:20 【问题描述】:

我制作了一个非常基本的字典,其中只存储了一个用户名,我还想在其中存储动态生成的 latlngs。我已经可以获取当前的 latlng,并且正在研究如何跟踪位置和存储新的 latlng,它会根据距离或时间进行更新。

我将如何在“纬度”键下存储多个纬度,而经度则相同?

我的用户名字典在这里:

username = Textbox.text;

    NSMutableDictionary *mydata = [[NSMutableDictionary alloc] init ];

    [mydata setObject:username forKey:@"username"];
    NSLog(@"%@", [mydata objectForKey:@"username"]);

我当前的位置代码在这里:

locationManager =[[CLLocationManager alloc] init];

locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = 100.0f;
[locationManager startUpdatingLocation];

CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude];
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude];

任何帮助将不胜感激。

【问题讨论】:

将它们存储为字符串可以,但使用 NSNumber 更容易编码/解码为浮点数据类型。 【参考方案1】:

如果你有两个纬度...

float latitudeA;
float latitudeB;

您想放入一个数组,首先将它们“包装”为 NSNumbers...

NSNumber *numLatitudeA = [NSNumber numberWithFloat:latitudeA];
NSNumber *numLatitudeB = [NSNumber numberWithFloat:latitudeB];

这会让你把它们放在一个数组中......

NSArray *myLatitudes = [NSArray arrayWithObjects:numLatitudeA, numLatitudeB, nil];

可以放在你的字典里(如果你愿意,可以放在@"latitude" 键下)...

[myData setValue:myLatitudes forKey:@"latitude"];

不过,您可能希望将多个纬度数组与不同的唯一经度相关联。如果是这样,与其使用字符串 @"latitude" 作为键,经度本身(如果它是 NSNumber)可以是一个非常好的键。

NSNumber *numLongitude = [NSNumber numberWithFloat:longitude];
[myData setObject:myLatitudes forKey:numLongitude];

【讨论】:

感谢您的回复。这仅适用于 2 个独特的纬度和经度吗?我需要字典来存储数千个唯一关联的 latlng,这些 latlng 每天至少会从字典发送到数据库一次。使用 SQLlite 会是更好的选择吗? 对于集合对象来说,这仍然是一个很小的数量。驱使您访问数据库的因素是 (a) 更像是数十万或数百万,(b) 复杂的相互关系,(c) 需要在手机上保存这些数据。

以上是关于如何将动态位置数据加载到字典对象/数组中?的主要内容,如果未能解决你的问题,请参考以下文章

无法将 Plist 中的数据加载到数组中

将核心数据加载到数组中,然后填充表视图,重新排序数组对象不会持久

如何将 numpy 数组列表加载到 pytorch 数据集加载器?

我想从firebase实时数据库中显示recyclerview android上的数据..但我无法将动态数据加载到适配器数组中

如何将自定义数组保存/重新加载到 plist

将多个数据文件组合成 np.arrays,存储在字典中