在ios中绘制polyLine时出错

时间:2013-11-22 10:57:22

标签: ios mapkit mkpolyline

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

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

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

我收到错误

将Objective-C指针类型'NSMutableArray *'隐式转换为C指针类型'CLLocationCoordinate2D *'需要桥接转换

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

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

polylineWithCoordinates:count:接受CLLocationCoord2D类型的对象数组,count是coord中的对象数。看看这个link。我在下面阅读了您的评论,似乎您的数组(位置)中的对象属于MKAnnotations类型,而它们应该是CLLocationCoord2D。看看这个。此外,错误表明此数组的某个对象(您提供的)包含类型为NSMutableArray的对象。也许在某个地方,你正在添加错误的实例。看看这个。

如果有帮助,请告诉我。