0

当应用程序状态更改为“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];
}
4

0 回答 0