我正在构建一个使用 Core Location 框架跟踪用户运动的健身应用程序。我正在使用 Core Data 框架保存数据。目前我有两个实体;锻炼和位置。Workout 由这些 Location 对象组成,它们的主要属性是纬度和经度。
当我尝试从这些 Location 对象创建 MKPolyLine 时,需要在设备上花费大量时间。
- (void)createRouteLineAndAddOverLay
{
CLLocationCoordinate2D coordinateArray[[self.workout.route count]];
for (int i = 0; i < [self.workout.route count]; i++) {
CLLocationCoordinate2D coordinate;
coordinate.latitude = [[[self.workout.route objectAtIndex:i] latitude] doubleValue];
coordinate.longitude = [[[self.workout.route objectAtIndex:i] longitude] doubleValue];
coordinateArray[i] = coordinate;
}
self.routeLine = [MKPolyline polylineWithCoordinates:coordinateArray count:[self.workout.route count]];
[self.mapView addOverlay:self.routeLine];
[self setVisibleMapRect];
}
使用标量可以提高性能吗?或者我应该在保存它们时尝试用某种算法过滤掉其中一些位置点?