大家好我一直在地图应用程序中工作,我需要在两个位置之间绘制路线,我也有路线坐标(使用google Direction api)并将其保存在一个数组中,现在我只需要要做的是从点数组创建一个路径,稍后我将使用MKOverlayPathView的路径在地图上创建真实路线。这里我的问题是如何从坐标数组创建CGPathRef,或者以任何其他方式执行相同的操作 在此先感谢
答案 0 :(得分:21)
假设坐标作为NSValue对象存储在NSArray中,您可以执行以下操作:
CGMutablePathRef path = CGPathCreateMutable();
if (points && points.count > 0) {
CGPoint p = [(NSValue *)[points objectAtIndex:0] CGPointValue];
CGPathMoveToPoint(path, nil, p.x, p.y);
for (int i = 1; i < points.count; i++) {
p = [(NSValue *)[points objectAtIndex:i] CGPointValue];
CGPathAddLineToPoint(path, nil, p.x, p.y);
}
}
// do stuff
CGPathRelease(path);
答案 1 :(得分:2)
创建路径的另一种方法:
CGPoint points[5];
// TODO: Fill points array with values.
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddLines(path, NULL, points, 5);
// TODO: Do something useful with path.
CGPathCloseSubpath(path);
CGPathRelease(path);