天天看点

关于MapKit的简单用法显示地图主要分以下两个步骤:在地图上进行定位需要以下两个步骤:

本篇博客是关于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

第二步初始化位置管理对象:

//    创建一个位置管理器对象
    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));

}
           
以上仅是MapView的简单设置,对于其他的地图功能,将在下一续篇中解释。

继续阅读