2012-02-16 51 views
8

大家好我一直在一個地圖應用程序工作,在哪裏我需要繪製兩個位置之間的路線,我也有路線座標(使用谷歌方向API),並保持它在數組中,現在我只需要從點數組創建一個路徑,稍後我將使用MKOverlayPathView的路徑在地圖上創建真實路線。在這裏我的問題是如何從座標的陣列,或任何其他的方式來完成相同的操作提前
感謝如何從點數組創建CGPathRef

回答

20

假設座標存儲在一個NSArray作爲NSValue對象來創建CGPathRef,你可以做以下:

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); 
+0

好的,謝謝;但不幸的是我的數組有一個類(它有經度和緯度)的對象,所以我創建了另一個數組用於將座標轉換爲點,因此我發現這有點複雜,所以我移動創建多邊線,其中我輸入我的座標數組,並嘗試創建多邊形視圖。 – iDroid 2012-02-16 12:42:35

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);