#import "ViewController.h"
// 如果是从Xib/SB文件当中使用到框架, 需要手动导入框架
#import <MapKit/MapKit.h>
@interface ViewController () <CLLocationManagerDelegate, MKMapViewDelegate>
@property (strong, nonatomic) CLLocationManager *manager;
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 授权
// 如果当前授权状态已经作出决定, 该方法什么都不干
[self.manager requestAlwaysAuthorization];
// 如果调用了代码, 会自动导入
NSLog(@"%@", [MKMapView class]);
// 地图类型
/**
MKMapTypeStandard = 0, // 标准
MKMapTypeSatellite, // 卫星
MKMapTypeHybrid, // 标准 + 卫星
*/
// self.mapView.mapType = MKMapTypeHybrid;
// 地图手势
// self.mapView.scrollEnabled = NO; // 拖拽
// self.mapView.rotateEnabled = NO; // 旋转
// self.mapView.zoomEnabled = NO; // 放大缩小
/**
MKUserTrackingModeNone // 不追踪
MKUserTrackingModeFollow, // 追踪用户位置
MKUserTrackingModeFollowWithHeading, // 追踪用户位置与方向
*/
// 用户的追踪模式, 需要申请用户授权
// 以用户为中心, 显示用户周边
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
// 已经通过SB连线了代理对象
}
#pragma mark - MKMapViewDelegate
// 更新了用户位置时触发
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
// MKUserLocation 表示用户的位置信息
// 用户位置
CLLocation *location = userLocation.location;
NSLog(@"%f, %f", location.coordinate.latitude, location.coordinate.longitude);
NSLog(@"%@", userLocation.title);
}
// 地图加载完成后触发
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView
{
NSLog(@"地图加载完成后触发");
}
// 地图显示区域即将改变触发
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
{
NSLog(@"地图显示区域即将改变触发");
}
// 地图显示区域改变之后触发
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
NSLog(@"地图显示区域改变之后触发");
}
#pragma mark - CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
if (status == kCLAuthorizationStatusAuthorizedAlways) {
NSLog(@"授权成功");
}
}
#pragma mark - Getter & Setter
- (CLLocationManager *)manager
{
if ( !_manager) {
_manager = [[CLLocationManager alloc] init];
_manager.delegate = self;
}
return _manager;
}
@end
实用知识:CoreLocation的使用(地图展示)
最新推荐文章于 2022-02-15 13:04:07 发布