首页 > 解决方案 > 使用 MapKit 在地图上看不到当前位置

问题描述

我想在地图上显示用户的当前位置MapKit,一切正常,但用户当前位置在地图上不可见。以下是我设置的属性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委托设置为当前控制器,如下所示: 地图视图委托

预期的结果是它应该显示用户的当前位置。实际结果是它没有在地图上显示位置,如下所示: 模拟器上的结果

标签: iosobjective-cmapkit

解决方案


首先,我建议showsUserLocation在代码中实际将属性设置为 YES。

其次,请注意,显示用户实际所在的区域取决于您;例如:

- (void)mapView:(MKMapView *)mapView
        didUpdateUserLocation:(MKUserLocation *)userLocation {
    CLLocationCoordinate2D coordinate = userLocation.location.coordinate;
    MKCoordinateRegion reg =
        MKCoordinateRegionMakeWithDistance(coordinate, 600, 600);
    mapView.region = reg;
}

推荐阅读