Я не уверен, что понял ваш вопрос наверняка. Если вы ищете список точек для отображения от конца до конца, то вам нужно будет создать объект MKPolyline
из этих точек, убедившись, что точки добавлены в массив myPoints в том порядке, в котором вы хотите их подключить:
CLLocationCoordinate2D coordinates[[myPoints count]];
int i = 0;
for (Checkpoint *point in myPoints)
{
coordinates[i] = CLLocationCoordinate2DMake([point.lat floatValue] , [point.lon floatValue]);
i++;
}
self.polyline = [MKPolyline polylineWithCoordinates:coordinates count: [myPoints count]];
[mapView addOverlay:self.polyline];
Затем убедитесь, что вы реализуете метод делегата - mapView:rendererForOverlay:
. Вот пример, но адаптировать его к вашим потребностям:
-(MKOverlayRenderer*)mapView:(MKMapView*)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
MKPolylineRenderer* lineView = [[MKPolylineRenderer alloc] initWithPolyline:self.polyline];
lineView.strokeColor = [UIColor blueColor];
lineView.lineWidth = 7;
return lineView;
}
Однако, если вы действительно хотите замкнутый контур (круговой) объект, то вам нужно будет создать MKPolygon
объект вместо этого. Процесс довольно схож; в этом случае заменить self.polyline инициализатору выше с этим кодом:
self.polygon = [MKPolygon polygonWithCoordinates:coordinates count: [myPoints count]];
[mapView addOverlay:self.polygon];
- mapView:rendererForOverlay:
код должен оставаться таким же, я думаю. Я не тестировал этот код, но, надеюсь, он заставит вас двигаться в правильном направлении.
Невозможно добавить тип данных «Контрольная точка» – EdSniper