多个叠加与连续重绘im MKMapView

时间:2015-05-05 08:06:32

标签: ios mkmapview

我正在MKMapView上绘制用户位置路径,我想知道什么是更好的方法。

目前我正在收集位置管理器中的所有位置数据,我每秒都会重新绘制整个叠加层。

- (void)showLines {
    NSArray *locations = [[SHLocationManager sharedInstance] locations];
    CLLocationCoordinate2D *pointsCoordinate = (CLLocationCoordinate2D *)malloc(sizeof(CLLocationCoordinate2D) * locations.count);
    [locations enumerateObjectsUsingBlock:^(CLLocation *location, NSUInteger idx, BOOL *stop) {
        pointsCoordinate[idx] = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude);
    }];

    MKPolyline *polyline = [MKPolyline polylineWithCoordinates:pointsCoordinate count:locations.count];
    free(pointsCoordinate);

    [self.mapView removeOverlays:self.mapView.overlays];
    [self.mapView addOverlay:polyline];
}

- (MKPolylineRenderer *)mapView:(MKMapView *)mapView viewForOverlay:(id)overlay{
    MKPolylineRenderer *polylineView = [[MKPolylineRenderer alloc] initWithPolyline:overlay];
    polylineView.strokeColor =  [UIColor colorWithRed:0.17 green:0.57 blue:0.85 alpha:1];
    polylineView.lineWidth = 8.0;
    polylineView.alpha = 1;

    return polylineView;
}

为我从位置经理那里得到的每一对点画一条线是否更好?

它会创建多个叠加层 - 不知道它会如何影响性能。

您认为哪个更好?

0 个答案:

没有答案