美文网首页iOS
OC 第三方 地图定位的使用

OC 第三方 地图定位的使用

作者: J_mine | 来源:发表于2017-08-01 17:18 被阅读0次

    地图作为一种生活出行的必备工具为我们的生活提供了很多的便利 在此为大家讲述下 在ios开发中地图应用的使用
    一 导入库文件


    1.png

    二 拖拽控件并关联

    三 具体代码的实现
    1 导入头文件

    // 地图
    #import <MapKit/MapKit.h>
    //定位
    #import <CoreLocation/CoreLocation.h>
    

    2 在viewDidLoad 中 实现主要代码

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // 设置地图显示风格
        self.MpView.mapType = MKMapTypeStandard;
        // 设置地图缩放
        self.MpView.zoomEnabled = YES;
        // 设置地图滚动
        self.MpView.scrollEnabled = YES;
        // 设置地图旋转
        self.MpView.rotateEnabled = YES;
        //代理
        self.MpView.delegate = self;
        // 调用自己实现的方法设置地图的显示位置和区域
        [self locateToLatitude:23 longitude:113];
        // 打印
        NSLog(@"用于当前是否位于地图中:%d",self.MpView.userLocationVisible);
        
        
        
    }
    

    3 在按钮的方法中实现如下的方式

    - (IBAction)goClicked:(id)sender
    {
        
        // 关闭两个文本框的虚拟键盘
        [self.jingdu resignFirstResponder];
        [self.weidu resignFirstResponder];
        NSString* latitudeStr = self.jingdu.text;
        NSString* longtitudeStr = self.weidu.text;
        // 如果用户输入的经度、纬度不为空
        if (latitudeStr != nil && latitudeStr.length > 0
            && longtitudeStr != nil && longtitudeStr.length > 0)
        {
            // 调用自己实现的方法设置地图的显示位置和显示区域
            [self locateToLatitude:latitudeStr.floatValue
                         longitude:longtitudeStr.floatValue];
        }
        
    }
    

    4 进行封装

    #pragma mark - 显示位置和显示区域 --封装
    - (void)locateToLatitude:(CGFloat)latitude longitude:(CGFloat)longitude
    {
        // 设置地图中心的经、纬度
        CLLocationCoordinate2D center = {latitude , longitude};
        // 也可以使用如下方式设置经、纬度
        //
        center.latitude = latitude;
        //
        center.longitude = longitude;
        // 设置地图显示的范围,
        MKCoordinateSpan span;
        // 地图显示范围越小,细节越清楚
        span.latitudeDelta = 0.01;
        span.longitudeDelta = 0.01;
        // 创建MKCoordinateRegion对象,该对象代表了地图的显示中心和显示范围。
        MKCoordinateRegion region = {center,span};
        // 设置当前地图的显示中心和显示范围
        [self.MpView setRegion:region animated:YES];
    }
    
    

    5 写下代理方法 在代理方法中<MKMapViewDelegate>直接粘贴即可(可写可不写)

    #pragma mark -MKMapViewDelegate(地图代理)
    // MKMapViewDelegate协议中的方法,当MKMapView显示区域将要发生改变时激发该方法
    - (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
    {
        NSLog(@"地图控件的显示区域将要发生改变!");
    }
    // MKMapViewDelegate协议中的方法,当MKMapView显示区域改变完成时激发该方法
    - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animatedx
    {
        NSLog(@"地图控件的显示区域完成了改变!");
    }
    // MKMapViewDelegate协议中的方法,当MKMapView开始加载数据时激发该方法
    - (void) mapViewWillStartLoadingMap:(MKMapView *)mapView
    {
        NSLog(@"地图控件开始加载地图数据!");
    }
    // MKMapViewDelegate协议中的方法,当MKMapView加载数据完成时激发该方法
    - (void) mapViewDidFinishLoadingMap:(MKMapView *)mapView
    {
        NSLog(@"地图控件加载地图数据完成!");
    }
    // MKMapViewDelegate协议中的方法,当MKMapView加载数据失败时激发该方法
    - (void) mapViewDidFailLoadingMap:(MKMapView *)mapView
                            withError:(NSError *)error
    {
        NSLog(@"地图控件加载地图数据发生错误,错误信息 %@!" , error);
    }
    // MKMapViewDelegate协议中的方法,当MKMapView开始渲染地图时激发该方法
    - (void) mapViewWillStartRenderingMap:(MKMapView *)mapView
    {
        NSLog(@"地图控件开始渲染地图!");
    }
    // MKMapViewDelegate协议中的方法,当MKMapView渲染地图完成时激发该方法
    - (void) mapViewDidFinishRenderingMap:(MKMapView *)mapView
                            fullyRendered:(BOOL)fullyRendered
    {
        NSLog(@"地图控件渲染地图完成!");
    }
    
    

    相关文章

      网友评论

        本文标题:OC 第三方 地图定位的使用

        本文链接:https://www.haomeiwen.com/subject/ipojlxtx.html