是否可以在ios中使用mapbox SDK在脱机状态下查找用户当前位置

是否可以在ios中使用mapbox SDK在脱机状态下查找用户当前位置,ios,objective-c,mapbox,Ios,Objective C,Mapbox,我正在制作离线地图。我正在使用mapbox sdk。但我无法跟踪用户当前位置。我编写了如下代码: 提前谢谢。请在这方面帮助我实际上你可以做到,但你必须打开wifi和3g。但如果showsUserLocation对您不起作用,您可以使用CLLocationManager进行操作。希望我的代码可以帮助你 - (IBAction)findMe:(id)sender { if (!_trackingActive) { NSLog(@"Tracking mode activated

我正在制作离线地图。我正在使用mapbox sdk。但我无法跟踪用户当前位置。我编写了如下代码:


提前谢谢。请在这方面帮助我

实际上你可以做到,但你必须打开wifi和3g。但如果showsUserLocation对您不起作用,您可以使用CLLocationManager进行操作。希望我的代码可以帮助你

- (IBAction)findMe:(id)sender {
    if (!_trackingActive) {
        NSLog(@"Tracking mode activated");
        _locationManager = [[CLLocationManager alloc] init];
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        _locationManager.delegate = self;
        [_locationManager startUpdatingLocation];
        _startLocation = nil;
        _trackingActive = true;
        self.mapView.showsUserLocation = YES;

        if ([UIView instancesRespondToSelector:@selector(setTintColor:)])
            self.mapView.tintColor = [UIColor colorWithRed:0.200 green:1.000 blue:0.200 alpha:1];

        self.mapView.userLocation.title = @"Hola";
        self.mapView.userLocation.badgeIcon = [UIImage imageNamed:@"info"];
        self.mapView.userLocation.annotationIcon = [UIImage imageNamed:@"info"];

    }else{
        NSLog(@"Tracking mode deactivated");
        [_locationManager stopUpdatingLocation];
        _trackingActive = false;
        self.mapView.showsUserLocation = NO;
    }
}

-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation
{
    NSString *currentLatitude = [[NSString alloc]
                                 initWithFormat:@"%+.6f",
                                 newLocation.coordinate.latitude];
    _latitude.text = currentLatitude;

    NSString *currentLongitude = [[NSString alloc]
                                  initWithFormat:@"%+.6f",
                                  newLocation.coordinate.longitude];
    _longitude.text = currentLongitude;

    NSString *currentHorizontalAccuracy =
    [[NSString alloc]
     initWithFormat:@"%+.6f",
     newLocation.horizontalAccuracy];
    _horizontalAccuracy.text = currentHorizontalAccuracy;

    NSString *currentAltitude = [[NSString alloc]
                                 initWithFormat:@"%+.6f",
                                 newLocation.altitude];
    _altitude.text = currentAltitude;

    NSString *currentVerticalAccuracy =
    [[NSString alloc]
     initWithFormat:@"%+.6f",
     newLocation.verticalAccuracy];
    _verticalAccuracy.text = currentVerticalAccuracy;

    if (_startLocation == nil)
        _startLocation = newLocation;

    CLLocationDistance distanceBetween = [newLocation
                                          distanceFromLocation:_startLocation];

    NSString *tripString = [[NSString alloc]
                            initWithFormat:@"%f",
                            distanceBetween];
    _distance.text = tripString;
    self.mapView.centerCoordinate = CLLocationCoordinate2DMake(currentLatitude.doubleValue, currentLongitude.doubleValue);
}

嗨,有人能找到答案吗
- (IBAction)findMe:(id)sender {
    if (!_trackingActive) {
        NSLog(@"Tracking mode activated");
        _locationManager = [[CLLocationManager alloc] init];
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        _locationManager.delegate = self;
        [_locationManager startUpdatingLocation];
        _startLocation = nil;
        _trackingActive = true;
        self.mapView.showsUserLocation = YES;

        if ([UIView instancesRespondToSelector:@selector(setTintColor:)])
            self.mapView.tintColor = [UIColor colorWithRed:0.200 green:1.000 blue:0.200 alpha:1];

        self.mapView.userLocation.title = @"Hola";
        self.mapView.userLocation.badgeIcon = [UIImage imageNamed:@"info"];
        self.mapView.userLocation.annotationIcon = [UIImage imageNamed:@"info"];

    }else{
        NSLog(@"Tracking mode deactivated");
        [_locationManager stopUpdatingLocation];
        _trackingActive = false;
        self.mapView.showsUserLocation = NO;
    }
}

-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation
{
    NSString *currentLatitude = [[NSString alloc]
                                 initWithFormat:@"%+.6f",
                                 newLocation.coordinate.latitude];
    _latitude.text = currentLatitude;

    NSString *currentLongitude = [[NSString alloc]
                                  initWithFormat:@"%+.6f",
                                  newLocation.coordinate.longitude];
    _longitude.text = currentLongitude;

    NSString *currentHorizontalAccuracy =
    [[NSString alloc]
     initWithFormat:@"%+.6f",
     newLocation.horizontalAccuracy];
    _horizontalAccuracy.text = currentHorizontalAccuracy;

    NSString *currentAltitude = [[NSString alloc]
                                 initWithFormat:@"%+.6f",
                                 newLocation.altitude];
    _altitude.text = currentAltitude;

    NSString *currentVerticalAccuracy =
    [[NSString alloc]
     initWithFormat:@"%+.6f",
     newLocation.verticalAccuracy];
    _verticalAccuracy.text = currentVerticalAccuracy;

    if (_startLocation == nil)
        _startLocation = newLocation;

    CLLocationDistance distanceBetween = [newLocation
                                          distanceFromLocation:_startLocation];

    NSString *tripString = [[NSString alloc]
                            initWithFormat:@"%f",
                            distanceBetween];
    _distance.text = tripString;
    self.mapView.centerCoordinate = CLLocationCoordinate2DMake(currentLatitude.doubleValue, currentLongitude.doubleValue);
}