将mapView.userLocation.location.coordinate.longitude保存到sqlite数据库中

时间:2011-01-08 17:33:27

标签: objective-c sqlite mkmapview

我想将从mapView.userLocation.location.coordinate.longitude返回的值插入到我的sqlite3数据库中。我不确定它的类型。我不能这样做:

sqlite3_bind_text(stmt, 1, [mapView.userLocation.location.coordinate.longitude floatValue], -1, nil);

它给“无法转换为指针类型”错误,因为经度不是浮点数,我想。

字段的类型是数据库表中的FLOAT。如何将经度值转换为浮动值?

非常感谢。

1 个答案:

答案 0 :(得分:4)

MKUserLocation的文档显示location属性的类型为CLLocation。 CLLocation的文档显示坐标属性的类型为CLLocationCoordinate2D。

Core Location Data Types Reference表明CLLocationCoordinate2D是一个包含纬度和经度的结构,每个结构都是CLLocationDegrees类型。

在同一页面上,CLLocationDegrees显示为double的另一个名称。所以纬度和经度都是double型。

因此,不要使用sqlite3_bind_text,而是使用sqlite3_bind_double

sqlite3_bind_double(stmt, 1, mapView.userLocation.location.coordinate.longitude);

要加载该值,您可以使用以下内容:

double longitude = sqlite3_column_double(stmt, column_index_here);