2 Вопрос: Текущее местоположение не отображается на карте с помощью MapKit

вопрос создан в Wed, May 8, 2019 12:00 AM

Я хочу показать текущее местоположение пользователя на карте, используя MapKit, и все идет хорошо, но текущее местоположение пользователя не отображается на картах. Вот свойства, которые я установил для mapView:

 свойства mapView

Вот остаток кода контроллера:

#import <MapKit/MapKit.h>
#import "ShowMarkerAndNavigateVC.h"

@interface ShowMarkerAndNavigateVC ()

@property (weak, nonatomic) IBOutlet MKMapView *mapView;

@end

CLLocationManager *mgr;


@implementation ShowMarkerAndNavigateVC

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"View loaded Successfully");
    mgr = [[CLLocationManager alloc] init];
    [mgr requestWhenInUseAuthorization];
    NSLog(@"Reuquested always authorization");
}

- (IBAction)backButtonPressed:(id)sender {
    [self.navigationController popViewControllerAnimated:YES];
}


@end

Я также установил делегат mapView для текущего контроллера, как показано здесь: делегат mapView

Ожидаемый результат заключается в том, что он должен показывать текущее местоположение пользователя. Фактический результат - то, что это не показывает местоположение на карте как показано здесь: результат на симуляторе

    
- 1
  1. Вы используете симулятор? Если да, не забудьте смоделировать местоположение с помощью. Xcode.
    2019-05-08 15: 50: 56Z
2 ответа                              2                         

Во-первых, я бы предложил на самом деле установить для свойства showsUserLocation значение YES.

Во-вторых, обратите внимание, что вам нужно показать регион, где на самом деле находится местоположение пользователя; например:

- (void)mapView:(MKMapView *)mapView
        didUpdateUserLocation:(MKUserLocation *)userLocation {
    CLLocationCoordinate2D coordinate = userLocation.location.coordinate;
    MKCoordinateRegion reg =
        MKCoordinateRegionMakeWithDistance(coordinate, 600, 600);
    mapView.region = reg;
}
    
0
2019-05-08 15: 52: 05Z
  1. Теперь он показывает местоположение, но не пользовательское, которое я установил в отладке эмулятора. Можете ли вы иметь более подробную ссылку на него, как я новичок в IOS.
    2019-05-08 18: 41: 23Z

Если вы используете симулятор, вы не получите местоположение пользователя, потому что симулятор не знает своего собственного местоположения.

Для этого откройте меню Отладка в Simulator и выберите Apple в подменю *** Location *.

Надеюсь, это поможет вам.

    
0
2019-05-08 15: 52: 31Z
  1. Я сделал то же самое, но это не решило проблему. Я также установил пользовательское местоположение, но по-прежнему ничего не получилось.
    2019-05-08 18: 28: 20Z
источник размещен Вот