本篇博客是关于MapKit的地图显示和地图定位的简单介绍,如果有错误,或是遗漏的,希望各位能指出来,真是感激不尽!显示地图主要分以下两个步骤:
第一步首先是包含地图框架的头文件
//1.添加MapKit地图框架
#import <MapKit/MapKit.h>
其次定义一个MapView变量,因为在不同的地方需要使用,所以需要定义为全局变量。
@interface QYViewController ()
//2.定义一个全局的mapView地图对象(需要使用的地方不一样)
@property (nonatomic,strong)MKMapView *mapView;
@end
第二步这是对MapView的模式选择和属性设置
// 对mapView对象进行初始化 self.mapView = [[MKMapView alloc]initWithFrame:self.view .bounds]; // 设置mapView的显示模式,有三种:MKMapTypeStandard 标准的模式(默认) // MKMapTypeSatellite 卫星模式 // MKMapTypeHybrid 混合显示模式 self.mapView.mapType = MKMapTypeStandard; // 设置地图是否允许放大,缩小 self.mapView.zoomEnabled = YES; // 设置地图是否能进行滑动 self.mapView.scrollEnabled = YES; // 显示当前位置,一个蓝色圆点 self.mapView.showsUserLocation = YES; // 设置地图要显示的经纬度{纬度,经度}(这仅是初始化方法) // CLLocationCoordinate2D coordinate = {34.7568711,113.663221}; // 这是可以随意设置coordinate的纬度或经度,先定义一个地理坐标信息的变量 CLLocationCoordinate2D coordinate; // 设置纬度值 coordinate.latitude = 34.7568711; // 设置经度值 coordinate.longitude = 113.663221; // 表示显示地域的经度,值越小,越精确(这是初始化方法) MKCoordinateSpan span = {1,1}; // 根据给出的经纬度coordinate和显示的精确度span显示区域,通常是个圆,及其半径(这仅是初始化方法) // MKCoordinateRegion region = {coordinate,span}; // 先定义一个坐标区域的变量 MKCoordinateRegion region; // 对坐标区域进行赋值 region = MKCoordinateRegionMake(coordinate, span); // 告诉地图要显示的区域 [self.mapView setRegion:region];
在地图上进行定位需要以下两个步骤:
第一步遵循代理:
@interface QYViewController : UIViewController<CLLocationManagerDelegate,MKMapViewDelegate>
@end
第二步初始化位置管理对象:
以上仅是MapView的简单设置,对于其他的地图功能,将在下一续篇中解释。// 创建一个位置管理器对象 CLLocationManager *loctionManger = [[CLLocationManager alloc]init]; // 设置locationManger的代理 loctionManger.delegate = self; // 对于位置管理来说, 并非是精度越大越好。 因为GPS模块, 是手机最耗电的模块, // 所以为最大限度让我们应用程序省电, 需要根据具体的应用来设定具体的精度 loctionManger.desiredAccuracy = kCLLocationAccuracyBest; // 开始进行更新当前位置的数据 [loctionManger startUpdatingLocation ]; // 把mapView加到当前的view上 [self.view addSubview:self.mapView]; } //代理方法的实现 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { NSLog(@"%@",NSStringFromSelector(_cmd)); }