2

我正在创建一个应用程序,它应该显示两点之间的路线。

MKPolyline *routeLine = [MKPolyline polylineWithCoordinates:locations count:2];
[mapView addOverlay:routeLine];

这两个位置存储在数组“位置”中。

我收到一个错误

Objective-C 指针类型“NSMutableArray *”到 C 指针类型“CLLocationCoordinate2D *”的隐式转换需要桥接转换

请帮我解决这个问题。
提前致谢。

4

2 回答 2

2

此方法需要 CLLocationCoordinate2D 数组类型的参数。您必须创建一个 CLLocationCoordinate2D 类型的数组。代码看起来像这样:

CLLocationCoordinate2D *coordsArray = malloc(sizeof(CLLocationCoordinate2D) * locations.count);

int i = 0;
for (CLLocation *loc in locations) {
    coordsArray[i] = loc.coordinate;
    i++;
}

MKPolyline * routeLine = [MKPolyline polylineWithCoordinates:coordsArray 
                        count:locations.count];

free(coordinateArray);

[mapView addOverlay:routeLine];
于 2013-11-22T11:19:06.013 回答
0

polylineWithCoordinates:count:接受一个类型的对象数组,CLLocationCoord2Dcount 是坐标中的对象数。看看这个链接。我在下面阅读了您的评论,您的数组(位置)中的对象似乎是 type MKAnnotations,而它们应该是CLLocationCoord2D. 看看这个。该错误还表明该数组的一个对象(您提供的)包含一个类型为 的对象NSMutableArray。也许在某个地方,您添加了错误的实例。看看这个。

让我知道这是否有帮助。

于 2013-11-22T13:14:30.600 回答