3

我想将坐标列表从数据库中提取到一个数组中(在地图上显示它们之前)。但是,在数据库中它们的类型是数字,我不知道如何将它们转换为坐标。

这不起作用:我有一个 ATM 对象(坐标用于 atm 机器),其中 NSNumbers 用于纬度和经度。这是在索引为 i 的循环中,以便将它们一一拉出。atmsArray 已加载。

ATM *aATM = [self.atmsArray objectAtIndex:i];


CLLocationCoordinate2D coord=[[CLLocationCoordinate2D alloc] initWithLatitude:(CLLocationDegrees)aATM.Latitude longitude:(CLLocationDegrees)aATM.Longitude];

显示错误: -CLLocationCoordinate2D 不是objectiveC 类名或别名 - 预期浮点值时使用的指针值 - 预期浮点值时使用的指针值

我尝试了一些不同的东西,但无法弄清楚。如果需要更多信息,请告诉我。

4

2 回答 2

15

aAtm.Longitude 和 aAtm.Latitude 是 NSNumbers,它们是指针,因此不能转换为 CLLocationDegrees。您需要使用 NSNumbers 的双精度值。

CLLocationCoordinate2D coord;
coord.longitude = (CLLocationDegrees)[aATM.Longitude doubleValue];
coord.latitude = (CLLocationDegrees)[aATM.Latitude doubleValue];

根据这个答案

于 2010-09-04T16:49:21.200 回答
6

你想要的是这样的:

CLLocationCoordinate2D coord;
coord.longitude = (CLLocationDegrees)aATM.Longitude;
coord.latitude = (CLLocationDegrees)aATM.Latitude;
于 2009-09-14T00:14:46.137 回答