MapKit - polylineWithCoordinates соединяет все точки - PullRequest
9 голосов
/ 22 августа 2011

Мне было просто любопытно, как правильно нарисовать простую линию маршрута между множеством точек? В настоящее время у меня есть массив координат, и когда я передаю его в polylineWithCoordinates и выполняю все другие необходимые действия, он рисует большую сеть линий, которые соединяют все точки друг с другом. Я рассмотрел несколько образцов, но ни один из них, кажется, не делает ничего особенного, чтобы объяснить это, даже если они используют более двух точек.

- (void)viewDidLoad
{
    [super viewDidLoad];

    ...

    //Add drawing of route line
    CLLocationCoordinate2D coordinates[[myCheckpoints count]];

    int i = 0;
    for (Checkpoint *ckpt in myCheckpoints)
    {
        coordinates[i] = CLLocationCoordinate2DMake([ckpt.lat floatValue] , [ckpt.lon floatValue]);
        i++;
    }

    MKPolyline *route = [MKPolyline polylineWithCoordinates: coordinates count: [myCheckpoints count]];
    [mapView addOverlay:route];

}

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {

    MKPolylineView *polylineView = [[[MKPolylineView alloc] initWithPolyline:overlay] autorelease];
    polylineView.strokeColor = [UIColor greenColor];
    polylineView.lineWidth = 5.0;

    return polylineView;

}

Это код в моем mapViewController, который отвечает за рисование, на тот случай, если кто-то увидит, что я делаю или не делаю. Here is what the result looks like

Теперь, когда я смотрю на все гораздо ближе, фактически не соединяю соседние координаты друг с другом. У каждой точки есть только 2 линии, вытекающие из нее, соединяющие эту точку с еще 2 точками, но я не могу понять схему, с которой они соединяются.

1 Ответ

3 голосов
/ 24 августа 2011

Убедитесь, что координаты в myCheckpoints расположены в том порядке, в котором вы хотите нарисовать линии.

Он будет рисовать линии в том порядке, в котором они указаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...