码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发-苹果自带地图简单使用

时间:2015-12-12 12:35:19      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:

【实现功能】:

1.展示简单地图

2.显示用户当前位置

3.控制视图大小

4.大头针点击显示信息

技术分享

【实现步骤】

1.导入两个需要的框架:CoreLocation.framework和MapKit.framework

2.引入头文件:

#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>

3.需要两个类的变量,这里定义为属性:

@property (nonatomic, retain)MKMapView *mapView;
@property (nonatomic, retain)CLLocationManager *locaManager;

4.别忘了接受协议

@interface ViewController ()<CLLocationManagerDelegate,MKMapViewDelegate>

5.OK开始上代码

 1 - (void)viewDidLoad{
 2     [super viewDidLoad];
 3     
 4     //初始化位置管理
 5     self.locaManager = [[CLLocationManager alloc] init];
 6     //如果设备在iOS8及以上,得先弹框让用户授权,才能获得定位权限
 7     if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {
 8         [self.locaManager requestWhenInUseAuthorization];
 9     }
10     //设置代理
11     self.locaManager.delegate = self;
12     //开始定位
13     [self.locaManager startUpdatingLocation];
14     
15     
16     //初始化地图视图
17     self.mapView = [[MKMapView alloc] initWithFrame:self.view.frame];
18     //设置地图样式为基本样式(这里有三种样式)
19     self.mapView.mapType = MKMapTypeStandard;
20     //是否显示当前位置
21     self.mapView.showsUserLocation = YES;
22     //设置代理
23     self.mapView.delegate = self;
24     [self.view addSubview:self.mapView];
25 }

代理方法的实现

#pragma mark -- mapViewDelegate

- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView{
    NSLog(@"加载完毕");
}
- (void)mapViewWillStartLocatingUser:(MKMapView *)mapView{
    NSLog(@"将要获取用户位置");
}

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{
    //点击大头针,出现信息
    userLocation.title = @"丁健";
    userLocation.subtitle = @"dingjianjaja";
    //让地图视图转移到用户当前位置
    [mapView setCenterCoordinate:userLocation.location.coordinate animated:YES];
    //设置精度,以及显示用户所在地
    MKCoordinateSpan span = MKCoordinateSpanMake(1, 1);//比例尺为1:10^5,1厘米代表1公里
    MKCoordinateRegion region = MKCoordinateRegionMake(userLocation.location.coordinate, span);
    [mapView setRegion:region animated:YES];
}

6.运行

发现不显示用户位置,原因是在iOS8以后程序使用定位有三种状态,即试用期间/始终/永不,所以我们需要在plist文件中配置:试用期间或者始终

NSLocationWhenInUseUsageDescription


简单的展示地图自己位置就完成了,下面会继续加入目的地大头针,以及连接当前位置与目的地,并计算直线距离的功能。

 

iOS开发-苹果自带地图简单使用

标签:

原文地址:http://www.cnblogs.com/dingjianjaja/p/5040944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!