从sqlite iphone读取经度和纬度

时间:2011-08-06 15:08:35

标签: iphone xcode sqlite cllocationmanager cllocation

我一直在努力解决这个问题。我阅读了很多资源,但仍无法找到明确的方法。

我有一个包含纬度和经度行的Sqlite表。我的任务是获取那些纬度和经度并将它们放在一个数组中,然后再用于在地图上显示所有引脚。我在AppDelegate中执行这些“从数据库中读取”(这是可取的还是在带有地图的视图控制器中做得更好?)

我取lat和long为double值,如下所示

while (sqlite3_step(selectStmt)==SQLITE_ROW){
    double latitude= sqlite3_column_double(selectStmt, 1);
    double longitude= sqlite3_column_double(selectStmt, 2);

    CLLocationCoordinate2D coord=CLLocationCoordinate2DMake(latitude,longitude);
            // I want to add this to an array, so that i can use later for annotations
}

然而,当我尝试添加“不兼容的类型参数1关闭addObject”。

这是从sqlite获取多个坐标以在地图上显示的正确方法吗?

帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

您需要使用CLLocation类来存储您的位置数据。 http://developer.apple.com/library/ios/#DOCUMENTATION/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html#//apple_ref/doc/uid/TP40007126

CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
[array addObject:location];
[location release];

答案 1 :(得分:1)

CLLocationCoordinate2D是一个结构而不是一个对象,你需要addObject方法的对象。

您可以将CLLocation用作Evgeniy建议或创建自己的对象来存储/检索这些值。