当应用程序状态更改为“applicationEnterBackground”时,-mapView didUpdateUserLocation 方法不会刷新,因此接收设备的位置是不可能的。所以我无法将用户的行进路线绘制到地图上。它仅从用户开始步行的点到用户停止步行的终点绘制一条线。
有什么方法可以在 applicationEnterBackground 状态下绘制用户行进的道路。
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
NSLog(@"%@ ----- %@", self, NSStringFromSelector(_cmd));
CLLocation *location = [[CLLocation alloc] initWithLatitude:userLocation.coordinate.latitude
longitude:userLocation.coordinate.longitude];
NSLog(@"latitude %+.6f, longitude %+.6f\n", userLocation.coordinate.latitude, userLocation.coordinate.longitude);
[_latitudeArray addObject:[NSString stringWithFormat:@"%f",userLocation.coordinate.latitude]];
[_longitudeArray addObject:[NSString stringWithFormat:@"%f",userLocation.coordinate.longitude]];
// check the zero point
if (userLocation.coordinate.latitude == 0.00f ||
userLocation.coordinate.longitude == 0.00f)
return;
// check the move distance
if (_points.count > 0) {
CLLocationDistance distance = [location distanceFromLocation:_currentLocation];
if (distance < 5)
return;
}
if (nil == _points) {
_points = [[NSMutableArray alloc] init];
}
[_points addObject:location];
_currentLocation = location;
[self configureRoutes];
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(userLocation.coordinate.latitude, userLocation.coordinate.longitude);
[self.mapView setCenterCoordinate:coordinate animated:YES];
}