• 地图显示MapKit框架的使用


    在iOS开发中,我们使用Map Kit API开发地图应用.其核心是MKMapView类。MKMapView是显示地图的视图,它的委托协议是MKMapViewDelegate。使用Map Kit API时,需要导入MapKit框架。

    首先我们需要导入主头文件
           #import <MapKit/MapKit.h>
    MapKit框架使用须知:

    MapKit框架中所有数据类型的前缀都是MK
    MapKit有一个比较重要的UI控件:MKMapView,专门用于地图显示.

    一.设置MKMapView的userTrackingMode属性可以跟踪显示用户的当前位置    
        MKUserTrackingModeNone :不跟踪用户的位置
        MKUserTrackingModeFollow :跟踪并在地图上显示用户的当前位置
        MKUserTrackingModeFollowWithHeading :跟踪并在地图上显示用户的当前位置,地图会跟随用户的前进方向进行旋转
    二.设置MKMapView的mapType设置地图类型(mapViewType是枚举类型)
        MKMapTypeStandard // 普通地图(比较常用,一般不需要考虑地形,只需要显示出街道即可)
        MKMapTypeSatellite // 卫星云图 (主要用于显示地形)
        MKMapTypeHybrid // 普通地图覆盖于卫星云图之上(上述2种的混合)
        MKMapTypeSatelliteFlyover NS_ENUM_AVAILABLE(10_11, 9_0) // 地形和建筑物的三维模型
        MKMapTypeHybridFlyover NS_ENUM_AVAILABLE(10_11, 9_0) // 显示道路和附加元素的Flyover

    三.MKMapView可以设置一个代理对象,用来监听地图的相关行为,常见的代理方法有:
    // 一个位置更改默认只会调用一次,不断监测用户的当前位置时每次都会调用这个方法,把用户的最新位置(userLocation参数)传进来.
    - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation;

    现在我们就来试一试,显示地图:

     1 #import "ViewController.h"
     2 //显示地图
     3 #import <MapKit/MapKit.h>
     4 //定位
     5 #import <CoreLocation/CoreLocation.h>
     6 @interface ViewController ()<MKMapViewDelegate> //代理方法
     7 //关键类:地图显示视图
     8 @property (nonatomic, strong)MKMapView *mapView;
     9 
    10 //定位管理器
    11 @property (nonatomic, strong)CLLocationManager *manager;
    12 
    13 @end
    14 
    15 @implementation ViewController
    16 
    17 //懒加载
    18 - (MKMapView *)mapView {
    19     if (!_mapView) {
    20         //视图设置为屏幕大小
    21         _mapView = [[MKMapView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    22         //设置几个重要的属性
    23         _mapView.mapType = MKMapTypeStandard; //普通地图
    24         //设置代理
    25         _mapView.delegate = self;
    26         //缩放(默认就是YES,可以缩放的)
    27 //        _mapView.zoomEnabled = YES;
    28         //添加到父视图
    29         [self.view addSubview:_mapView];
    30     }
    31     return _mapView;
    32 }
    33 
    34 
    35 - (void)viewDidLoad {
    36     [super viewDidLoad];
    37     //懒加载
    38     [self mapView];
    39 }

    运行就可以看到地图了,但是这时候,你会发现你看到的不是中国地图,没错,因为你还没有定位,有可能你看到的地图就是USA的,你可以鼠标拖动屏幕,来移动到你想要看的地方.

    接下来我们就来将地图和坐标结合,显示具体位置.这个地方我们就需要用到之前学到的,定位框架CoreLocation了.

  • 相关阅读:
    Chrome开发者工具中Elements(元素)断点的用途
    最简单的SAP云平台开发教程
    Java实现 LeetCode 495 提莫攻击
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 492 构造矩形
  • 原文地址:https://www.cnblogs.com/lovebugssun/p/5547659.html
Copyright © 2020-2023  润新知