登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

iOS高德二次封装,有定位,轨迹,语音实时导航,GPS纠偏.....

[复制链接]
来自: dshf 分类: iOS精品源码 上传时间: 2017-7-17 16:07:00
Tag:

项目介绍:

高德地图导航,搜索周边,语音播报,轨迹绘制等深入了解。

先来点前言:本人在开发项目过程中,遇到各种高德的神操作,通过学习官方sdk文档,结合demo,进行了二次封装,要实现这几个功能只需几句代码。写下这篇博客,希望大家给予佐证,共同进步。

废话不多说,直奔主题。

一、准备工作

我们要做高德地图相关的应用,首先得注册一个高德账号(一般以公司名义注册,如果是个人项目,就注册个人账号)。进入高德开放平台注册。当然有高德账号的同仁请忽略这一步。当你注册并登陆成功后我们就可以正式进入高德开发之旅了。

1、进入控制台

QQ20170708-101558.png

2、创建应用

QQ20170708-102327.png

QQ20170708-102643.png

3、添加key

QQ20170708-102824.png

QQ20170708-103058.png

Bundle ID

QQ20170708-103222.png

4、利用pod导入高德的相关sdk

//相信pod大家都用过,我就不具体介绍如何安装和使用cocoaPods了
pod 'AFNetworking'
pod 'AMap3DMap', '~>4.4.1'
pod 'AMapSearch' #搜索服务SDK
pod 'AMapLocation'
pod 'AMapNavi'#这个要放到其他高德sdk后
pod 'JZLocationConverter'#gps纠偏

假如不懂cocoapods使用的,看这篇文章http://blog.csdn.net/e62ces0iem/article/details/73550884

5、将高德生成的key放到APPdelegate.h文件中

QQ20170708-104047.png

//基础定位类
#import <AMapFoundationKit/AMapFoundationKit.h>
//高德地图基础类
#import <MAMapKit/MAMapKit.h>
//定义一个宏来保存高德的apikey
#define APIKEY @"a80ff3043934c4cb4a3af35b6b20b32"

6、在APPdelegate.m文件里设置相关内容

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //设置APIKEY
    [AMapServices sharedServices].apiKey = APIKEY;
    [AMapServices sharedServices].enableHTTPS = YES;
    return YES;
}

7、在plist文件中开启定位服务

QQ20170708-144008.png

二、实现地图相关功能

1、将我封装好的包导入项目中

QQ20170708-135921.png

2、导入头文件

#import "MapManager.h"

3、只显示地图和小蓝点

- (void)viewDidLoad {
    [super viewDidLoad];
    //不管进行什么地图操作都要先定位自己位置
    [self locationOnlySelf];
    
}
//显示自己的定位信息
-(void)locationOnlySelf{
    MapManager *manager = [MapManager sharedManager];
    manager.controller = self;
    [manager initMapView];
}

4、给指定坐标添加一个大头针


- (void)viewDidLoad {
    [super viewDidLoad];
    //不管进行什么地图操作都要先定位自己位置
    [self locationOnlySelf];
    CLLocationCoordinate2D coor;
    coor.latitude = 30.566666;//
    coor.longitude = 104.054536;
    [[MapManager sharedManager] addAnomationWithCoor:coor];
}

5、搜索附近并大头针标记(能实时导航,带语音)

- (void)viewDidLoad {
    [super viewDidLoad];
    //不管进行什么地图操作都要先定位自己位置
    [self locationOnlySelf];
    [self searchAround];
}
//附近搜索
-(void)searchAround{
    //可以设置大头针图片,没有设置图片就用默认图片
//    [MapManager sharedManager].destinationImgName = @"首牛";
//    [MapManager sharedManager].locationPointImgName = @"首牛";
    [[MapManager sharedManager] searchAroundWithKeyWords:@"景点"];//关键词可以随便写,只要高德能搜索的
}

6、假如要做历史轨迹连线,最好新建一个VC

- (void)viewDidLoad {
    [super viewDidLoad];
    MapManager *manager = [MapManager sharedManager];
    manager.controller = self;
    [manager initMapView];
    [manager.mapView setZoomLevel:13.1 animated:YES];
    //存放历史轨迹点坐标的数组
    NSArray *array = @[@"39.822136,116.35095",@"39.832136,116.42095",@"39.902136,116.42095",@"39.902136,116.44095"];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [manager drawLineWithArray:array];
        [manager addAnomationWithArray:array];
    });
    
}

三、来谈谈纠偏功能的实现和语音播报功能的实现

1、GPS纠偏一般用于硬件获取的GPS转为高德的GPS,因为相同地方每种地图的GPS是不相同的,所以需要用到这个三方JZLocationConverterGitHub下载地址,作者有详细的使用指南。

2、语音播报功能

(1)首先把我这个包拖到你的工程里

QQ20170708-143020.png

(2)代码实现
//重写高德导航自带的一个回调方法中开启语音
- (BOOL)driveManagerIsNaviSoundPlaying:(AMapNaviDriveManager *)driveManager
{
    return [[SpeechSynthesizer sharedSpeechSynthesizer] isSpeaking];
}
//关闭导航的回调方法中关掉语音
-(void)driveViewCloseButtonClicked:(AMapNaviDriveView *)driveView{
    [self.driveManager stopNavi];
    [driveView removeFromSuperview];
    //停止语音
    [[SpeechSynthesizer sharedSpeechSynthesizer] stopSpeak];
}

四、demo下载地址及效果图

GitHub下载地址链接: https://github.com/deng690990/SF_GaoDeMAP

高德demo.gif

相关源码推荐:

我来说两句
*滑动验证:
所有评论(105)
phoiu 2017-7-18 11:01:31
好好 学习了 确实不错
回复
BlueManlove 2017-7-18 11:01:58
内容很好,棒棒哒
回复
kengsir 2017-7-18 11:02:09
小弟学习了~支持,支持
回复
littleRed 2017-7-18 11:02:40
写的真的很不错
回复
AlonMessi 2017-7-18 11:03:11
内容很好,棒棒哒
回复
hellokenken 2017-7-18 11:05:03
感谢大神~
回复
code4app热心网友 2017-7-18 13:43:16
学习学习!
回复
atomix2 2017-7-18 13:54:25
精华内容,楼主V5!
回复
code4app热心网友 2017-7-18 13:54:35
虽不明,但觉厉!
回复
提取码:  下载次数:133 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
2653 2 133
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表