2012-02-16 9 views
8

Ciao a tutti ho lavorato in un'applicazione mappa, dove avevo bisogno di tracciare il percorso tra due posizioni, ho anche le coordinate del percorso (usando google Direction api) e l'ho tenuto in un array, Ora tutto quello che devo fare è creare un percorso dall'array di punti, in seguito userò il percorso con MKOverlayPathView per creare percorsi reali sulla mappa. Ecco il mio problema è come creare un CGPathRef dalla matrice di coordinate, o qualsiasi altro modo di fare la stessa operazione
Grazie in anticipoCome creare CGPathRef dall'array di punti

risposta

20

Supponendo che le coordinate sono memorizzate in un NSArray come oggetti NSValue, è possibile effettuare le seguenti operazioni :

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

Sì Grazie; Ma sfortunatamente il mio array ha gli oggetti di una classe (che ha longitudine e latitudine), quindi ho creato un altro array per convertire le coordinate in punti, quindi ho trovato che questo è un po 'complesso, quindi mi sono mosso per creare la linea poligonale, dove ho inserisci la mia matrice di coordinate e prova a creare la vista poligonale. – iDroid

2

Un altro modo per creare il percorso:

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