登录 立即注册
金钱:

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

高德地图显示模式,放大,缩小,讯飞语音输入并绘制路线

来自: xiao66guo 分类: iOS精品源码 上传时间: 2016-11-22 11:25:23
Tag:地图 map 定位 地理位置 地图缩放

项目介绍:

项目的功能:
1️⃣ 对用户的位置进行跟踪定位;
2️⃣实现了高德地图的几种展示模式;
3️⃣  通过地图中的经纬度和比例的系数来实现对地图的放大和缩小;
4️⃣  实现对地图中的大头针的自定义;
5️⃣以动画的方式来返回到用户原来定位的位置;
6️⃣点击“航拍”按钮可以使地图进入航拍的模式;
7️⃣集成“讯飞语音”的中的语音听写功能来实现用户的输入(也可支持手动输入哦)
8️⃣通过点击“导航”按钮来实现用户的定位和输入的位置之间的路线绘制功能;
   当再次点击“导航”或者“语音输入”按钮时会对以前的路线进行清除;
9️⃣增加路线详情查看及距离展示页面



大头针和指北针的效果图:


大头针和指北针

大头针和指北针


地图的相关操作.gif


讯飞语音输入的代码:
[Objective-C] 查看源文件 复制代码
//初始化语音识别控件
    _iflyRecognizerView = [[IFlyRecognizerView alloc] initWithCenter:self.view.center];
    _iflyRecognizerView.delegate = self;
    [_iflyRecognizerView setParameter: @"iat" forKey: [IFlySpeechConstant IFLY_DOMAIN]];
    //asr_audio_path保存录音文件名,如不再需要,设置value为nil表示取消,默认目录是documents
    [_iflyRecognizerView setParameter:@"asrview.pcm " forKey:[IFlySpeechConstant ASR_AUDIO_PATH]];
    // 添加语音按钮
    [self addVoiceBtn];

-(void)viewWillAppear:(BOOL)animated{
    NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@",@"58315ff7"];
    [IFlySpeechUtility createUtility:initString];
}

实现路线绘制和清除路线的代码:
[Objective-C] 查看源文件 复制代码
#pragma mark - 开始导航按钮
-(void)startNav{
    if (nil != _polyLineMutable) {
        [_map removeOverlays:_polyLineMutable];
        [_polyLineMutable removeAllObjects];
    }
    [_addressField resignFirstResponder];
    
    // 使用自定义地图进行导航  将起点和终点发送给服务器,由服务器返回导航结果
    // 1、创建导航请求对象
    MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
    // 2、设置起点和终点
    request.source = [MKMapItem mapItemForCurrentLocation];
    // //终点  通过地理编码(人文->地理)获取地标对象,然后生成地图项目
    //进行地理编码
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:_addressField.text completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        
        if (placemarks.count == 0 || error) {
            return ;
        }
        CLPlacemark *clPm = placemarks.lastObject;
        MKPlacemark *pm = [[MKPlacemark alloc] initWithPlacemark:clPm];
        request.destination = [[MKMapItem alloc] initWithPlacemark:pm];
        //3.创建导航对象
        MKDirections *direction = [[MKDirections alloc] initWithRequest:request];
        //4.计算导航路线 传递数据给服务器
        [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) {
            //取出结果中的路线对象
            for (MKRoute *route in response.routes) {
                //MKRoute 路线对象
                //取出路线中每一步操作
                for (MKRouteStep *step in route.steps) {
                    //取出每一步的具体内容
                    NSLog(@"%@", step.instructions);
                }
                // 地图画线  折线属于地图覆盖物的一种
                // 添加地图覆盖物  所以遵守MKOverlay协议的对象都可以作为覆盖物添加到地图上
                [_map addOverlay:route.polyline];
                
                [_polyLineMutable addObject:route.polyline];
            }
        }];
    }];
}

实现地图的缩放代码:
[Objective-C] 查看源文件 复制代码
#pragma mark - 地图的缩放
-(void)clickZoom:(UIButton *)sender{
    CLLocationCoordinate2D coordinate = _map.region.center;
    MKCoordinateSpan spn;
    if ([sender.titleLabel.text isEqualToString:@"放大"]) {
        spn = MKCoordinateSpanMake(_map.region.span.latitudeDelta * 0.5, _map.region.span.longitudeDelta * 0.5);
    }else{
        spn = MKCoordinateSpanMake(_map.region.span.latitudeDelta * 2, _map.region.span.longitudeDelta * 2);
    }
    [_map setRegion:MKCoordinateRegionMake(coordinate, spn) animated:YES];
}

项目托管地址
https://github.com/xiao66guo/XGMapRelatedOperations



相关源码推荐:

我来说两句
*滑动验证:
所有评论(90)
hellokenken 2016-11-22 14:01:51
支持,感谢,祝code4app越来越好~
回复
AlonMessi 2016-11-22 14:02:02
感谢大神~
回复
littleRed 2016-11-22 14:02:05
写的真的很不错
回复
BlueManlove 2016-11-22 14:02:43
支持,感谢,祝code4app越来越好~
回复
kengsir 2016-11-22 14:03:11
小弟学习了~支持,支持
回复
phoiu 2016-11-22 14:07:52
学习...学习...
回复
hallohubo 2016-11-22 16:34:19
正需要啊,感谢楼主无私分享!
回复
1467306558 2016-11-22 16:48:40
学习学习!
回复
王颖博 2016-11-23 09:57:27
感谢分享,Code4App有你更精彩
回复
提取码:  下载次数:126 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
1252 2 126
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

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

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

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