我正在構建一個使用Core Location框架跟蹤用戶移動的健身應用程序。 我正在使用Core Data框架保存數據。目前我有兩個實體;鍛鍊和地點。鍛鍊由這些位置對象組成,其中緯度和經度是其主要屬性。從一組NSManagedObject子類創建MKPolyline時的核心數據性能問題
當我試圖從這些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];
}
可以使用標量使任何性能改進?或者,我應該在保存時使用某種算法來過濾掉其中的某些位置點?
請NSLog的前後可疑代碼之後。因爲我認爲這不會花費很多時間 –
您每千米跟蹤的座標數量有多少 –
您需要更好地瞭解放緩的位置。 *如果上述方法實際上是問題,它可能是核心數據放慢了速度,或者它可能是'MKPolyline'調用,或者它可能會將覆蓋圖添加到地圖視圖。 –