1.自动用CocoaPods 安装 SDK
3D地图SDK
AMap3DMap
2D地图SDK
AMap2DMap
搜索功能
AMapSearch
定位SDK
AMapLocation
导航SDK
AMapNavi
2.Ap.m导入头文件
#import "AppDelegate.h"
#import <AMapFoundationKit/AMapFoundationKit.h>
#import "ViewController.h"
写入代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window.rootViewController=[[UINavigationController alloc]initWithRootViewController:[[ViewController alloc]init]];
[AMapServices sharedServices].apiKey = @"36e3bc41020eb4f602db63458d201a35";
return YES;
}
3.V.m
中导入头文件,签协议,写属性
#import "ViewController.h"
#import <AMapNaviKit/AMapNaviCompositeManager.h>
#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
#import <AMapNaviKit/AMapNaviDriveView.h>
#import <AMapNaviKit/AMapNaviDriveManager.h>
#import <AMapNaviKit/AMapNaviCompositeUserConfig.h>
@interface ViewController ()<AMapNaviCompositeManagerDelegate>
@property (nonatomic,strong)AMapNaviCompositeManager *compositeManager;
@property (nonatomic,strong)AMapNaviDriveView *driveView;
写内容:
-(void)gotoMapNavigation {
[self.compositeManager presentRoutePlanViewControllerWithOptions:nil];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"导航" style:UIBarButtonItemStylePlain target:self action:@selector(gotoMapNavigation)];
// Do any additional setup after loading the view, typically from a nib.
// 初始化
self.compositeManager = [[AMapNaviCompositeManager alloc] init];
// 如果需要使用AMapNaviCompositeManagerDelegate的相关回调(如自定义语音、获取实时位置等),需要设置delegate
self.compositeManager.delegate = self;
///地图需要v4.5.0及以上版本才必须要打开此选项(v4.5.0以下版本,需要手动配置info.plist)
[AMapServices sharedServices].enableHTTPS = YES;
///初始化地图
MAMapView *_mapView = [[MAMapView alloc] initWithFrame:self.view.bounds];
///地图需要v4.5.0及以上版本才必须要打开此选项(v4.5.0以下版本,需要手动配置info.plist)
[AMapServices sharedServices].enableHTTPS = YES;
///把地图添加至view
[self.view addSubview:_mapView];
///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
_mapView.showsUserLocation = YES;
_mapView.userTrackingMode = MAUserTrackingModeFollow;
}
- (void)initDriveView
{
if (self.driveView == nil)
{
self.driveView = [[AMapNaviDriveView alloc] initWithFrame:self.view.bounds];
self.driveView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[self.driveView setDelegate:self];
[self.view addSubview:self.driveView];
}
}
- (void)initDriveManager
{
[[AMapNaviDriveManager sharedInstance] setDelegate:self];
//将driveView添加为导航数据的Representative,使其可以接收到导航诱导数据
[[AMapNaviDriveManager sharedInstance] addDataRepresentative:self.driveView];
}
//开始驾车导航
- (void)driveManagerOnCalculateRouteSuccess:(AMapNaviDriveManager *)driveManager
{
NSLog(@"onCalculateRouteSuccess");
//算路成功后开始GPS导航
//算路成功后进行模拟导航
[[AMapNaviDriveManager sharedInstance] startEmulatorNavi];
}
- (void)dealloc
{
[[AMapNaviDriveManager sharedInstance] stopNavi];
[[AMapNaviDriveManager sharedInstance] removeDataRepresentative:self.driveView];
[[AMapNaviDriveManager sharedInstance] setDelegate:nil];
BOOL success = [AMapNaviDriveManager destroyInstance];
NSLog(@"单例是否销毁成功 : %d",success);
}
//驾车
- (void)compositeManager:(AMapNaviCompositeManager *)compositeManager didStartNavi:(AMapNaviMode)naviMode {
NSLog(@"didStartNavi,%ld",(long)naviMode);
}
4.info.plist中导入
5.如果爆一下error
跟自己的xcode升级有关系
下载libstdc++.6.0.9.tbd文件:[https://pan.baidu.com/s/18m8WrEqE2lXmS7Tosl9Jxw]
(1).如果真机测试我们将文件加入文件夹中
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
(2).如果模拟机测试我们将文件加入文件夹中
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
完事之后重启xcode