前言
关于如何调用高德地图的SDK,项目前需要下载哪些库,还有正式开始写项目前的一些注意事项可见这篇博客【iOS】调用百度、高德地图SDK
需要用到的库
PodFile
中写入以下:
platform :ios, '7.0'
target '你的工程名字' do
pod 'AMap3DMap'
pod 'AMapLocation'
pod 'AMapSearch'
end
AMap3DMap
是用来显示地图等有关操作的库AMapLocation
是有关定位功能的库AMapSearch
是用来搜索位置等功能的库
显示基础地图
- 在AppDelegate.m中,先声明好头文件
#import <AMapFoundationKit/AMapFoundationKit.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[AMapServices sharedServices].apiKey = @"你的KEY值";
return YES;
}
- 在
ViewController.h
中,提前声明好属性,以便使用该属性
@property (strong, nonatomic) MAMapView* mapView;
- 在
ViewController.m
中,以下有关于mapView
的一些其他属性设置
//把地图添加至view
_mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, [UIScreen mainScreen].bounds.size.height * 0.12, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height * 0.88)];
_mapView.showsIndoorMap = YES; //设置显示室内地图
_mapView.zoomLevel = 18; //设置缩放比例
_mapView.zoomEnabled = YES; //NO表示禁用缩放手势,YES表示开启
_mapView.rotateEnabled = NO; //NO表示禁用旋转手势,YES表示开启
_mapView.delegate = self; //设置代理
[self.view addSubview:_mapView];
- 此外,如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
开启定位
//是否显示用户的位置
_mapView.showsUserLocation = YES;
_mapView.userTrackingMode = MAUserTrackingModeFollow;
地图定位
- 先声明定位的头文件
#import <AMapLocationKit/AMapLocationKit.h>
,再声明一个属性
@property (strong, nonatomic) AMapLocationManager* locationManager;
- 自定义一个方法对定位初始化
//初始化定位
- (void)initLocation {
//持续定位
self.locationManager = [[AMapLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.distanceFilter = 10;
[self.locationManager setLocatingWithReGeocode:YES];
//开启持续定位
[self.locationManager startUpdatingLocation];
}
- 下面这个是一个回调函数(定位每次改变时都会调用)
//在回调函数中,获取定位坐标,进行业务处理。
<