2012-02-16 12 views
8

Herkese bir harita uygulamasında çalışıyorum, İki konum arasındaki rotayı çizmem gereken yerdeyim, rota koordinatlarını da (google Yönlendirme api kullanarak) aldım ve tuttum Bir dizide, Şimdi tüm yapmanız gereken nokta dizisinden bir yol oluşturmaktır, daha sonra harita üzerinde gerçek rotalar oluşturmak için MKOverlayPathView ile yolu kullanacağım. İşte benim problem aşağıdakileri yapabilirsiniz, koordinat dizisi, Ya aynı operasyonda Peşin
Teşekkür koordinatları varsayarsakNoktalardan CGPathRef nasıl oluşturulur

cevap

20

NSValue nesneler olarak bir NSArray saklanır yapmak başka bir şekilde bir CGPathRef nasıl oluşturulacağını olduğunu :

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

Evet teşekkürler; Ama ne yazık ki dizim bir sınıfın nesneleri (enlem ve boylam) vardır, Bu yüzden koordinatları noktalara dönüştürmek için başka bir dizi yarattım, bu yüzden biraz karmaşıklaştığımı farkettim, bu yüzden ben poli çizgisi oluşturmak için hareket ettim, koordinat dizimi girin ve poli çizgisi Görünümü oluşturmaya çalışıyorum. – iDroid

2

bir başka yolu yolu oluşturmak için:

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