免费开源的iOS开发学习平台

高德地图SDK:3-地图SDK简介

高德地图所提供的SDK中,地图SDK是用于提供地图展示相关功能的SDK,其可以提供地图显示(含室内、室外地图)、与地图交互、在地图上绘制、兴趣点搜索、地理编码、离线地图等功能。

MAMapView类简介

MAMapView类是高德地图提供的用于展示地图的类,其与MapKit框架中的MKMapView功能是类似的,但其提供的功能更加强大。在MAMapView类中,提供了如下一些比较常用的属性和方法。

  • 地图类型。除了普通地图以及卫星图之外,高德地图还提供夜间视图、导航视图以及公交视图等多种类型的地图
@property (nonatomic) MAMapType mapType;
  • 当前地图的中心点,改变该值时,地图的比例尺级别不会发生变化
@property (nonatomic) CLLocationCoordinate2D centerCoordinate;
  • 当前地图的经纬度范围,设定的该范围可能会被调整为适合地图窗口显示的范围
@property (nonatomic) MACoordinateRegion region;
  • 是否显示用户位置
@property (nonatomic) BOOL showsUserLocation;
  • 向地图窗口添加标注,需要实现MAMapViewDelegate的-mapView:viewForAnnotation:函数来生成标注对应的View
- (void)addAnnotation:(id <MAAnnotation>)annotation;

实现地图展示功能

下方的示例代码创建了一个MAMapView,并显示在屏幕上。

引入高德地图头文件。

#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>

在viewDidLoad方法中,创建MAMapView。

- (void)viewDidLoad {
    [super viewDidLoad];   
    //实例化MAMapView对象
    MAMapView *mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))];
    //设置代理
    mapView.delegate = self; 
    //设置地图类型
    mapView.mapType = MAMapTypeStandard;
    //定位以后改变地图的图层显示。
    [mapView setUserTrackingMode: MAUserTrackingModeFollow animated:YES];
    //添加到控制器view上
    [self.view addSubview:mapView];
}

运行结果如下: