在MapView上更新平滑的用户位置

时间:2012-08-10 05:08:10

标签: objective-c ios mkmapview

在我的didUpdateToLocation方法中,我正在获取位置更新,但我当前位置的移动是一些生涩的。

这是接收位置更新的代理:

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation   *)newLoc fromLocation:(CLLocation *)oldLoc
{
    MKCoordinateRegion region;
    region.center.latitude = newLoc.coordinate.latitude; 
    region.center.longitude = newLoc.coordinate.longitude;
    region.span.latitudeDelta = 0.1;
    region.span.longitudeDelta = 0.1;
    [self.mapView setRegion:region animated:YES];
}

您能否帮我确定如何获得顺畅的位置更新?我在网上搜索过,发现我们可以在ios5中使用跟踪模式来获得平滑的位置更新。如果是这种情况,那么我应该在当前的代码中进行哪些更改。

如果我设定 [self.mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES]; 在视图中加载然后我应该在位置更新中再次设置区域吗? 或者它会自动设置,因为我使用了usertrackingmode?

2 个答案:

答案 0 :(得分:0)

虽然它会更快地耗尽电池(因此除非您需要,否则不应使用它),如果您使用不同的desiredAccuracy,您可能会发现准确度会提高。

如果您参考Accuracy Constants的Apples列表,您可能会发现kCLLocationAccuracyBestForNavigationkCLLocationAccuracyBest是更好的选择。

答案 1 :(得分:0)

设置跟踪模式后,您无需进行任何手动区域/视图设置。