博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 在 程序内调用手机上安装的地图软件进行导航
阅读量:6831 次
发布时间:2019-06-26

本文共 2252 字,大约阅读时间需要 7 分钟。

// 需求是需要用户 能从 所在位置 到 附近的健身房的 路线, 然而,就一个需求,不值当的添加一个地图, 就用调用手机上第三方地图软件,  什么高德, 百度, 腾讯, iOS 原生地图都可以, 如果手机上什么地图都没有, 还有原生的  地图, 如果连原生的地图都删除了,  呵呵,  那我就不管了,  开玩笑, 如果连原生地图都删除了, 会跳转到  appStore 下载, 苹果自带的软件, 不会删除, 只是把图标隐藏而已, 下载非常快, 几秒即可. 不影响什么

// 进入正题

// 首先 添加白名单, 这是 必须的, 否则不能跳转, 添加在这里

LSApplicationQueriesSchemes

baidumap//百度

iosamap// 高德

comgooglemaps//谷歌

 

// 谷歌经我亲测, 在中国已废,  打开没有内容, 不用也罢

 

重点是打开的代码

iOS 原生地图

//当前的位置

MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];

//目的地的位置

MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(latitude, longitude) addressDictionary:nil]];

toLocation.name = name;

NSArray *items = [NSArray arrayWithObjects:currentLocation, toLocation, nil];

NSDictionary *options = @{ MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving, MKLaunchOptionsMapTypeKey: [NSNumber numberWithInteger:MKMapTypeStandard], MKLaunchOptionsShowsTrafficKey:@YES };

//打开苹果自身地图应用,并呈现特定的item

[MKMapItem openMapsWithItems:items launchOptions:options];

 

// 百度地图

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"baidumap://"]]) {

UIAlertAction * baiduAction = [UIAlertAction actionWithTitle:@"百度地图" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/direction?origin={

{我的位置}}&destination=latlng:%f,%f|name=%@&mode=driving&coord_type=gcj02",latitude, longitude,name]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

}];

}

 

// 高德地图

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"iosamap://"]]) {

UIAlertAction * gaodeAction = [UIAlertAction actionWithTitle:@"高德地图" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

NSString *urlString = [[NSString stringWithFormat:@"iosamap://navi?sourceApplication=%@&backScheme=%@&lat=%f&lon=%f&dev=0&style=2",@"一七健康",@"yiqihealth",latitude, longitude] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

}];

}

 

运行之后, 完美

转载于:https://www.cnblogs.com/dingzhijie/p/7411962.html

你可能感兴趣的文章
Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
查看>>
拒绝alert调试js,浏览器调试js大全(火狐firefox浏览器,谷歌chrome 浏览器,微软ie9浏览器等)...
查看>>
《深入理解Nginx》阅读与实践(三):使用upstream和subrequest访问第三方服务
查看>>
NGUI:HUD Text(头顶伤害漂浮文字)
查看>>
HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
查看>>
linux命令学习-复制(cp,scp)
查看>>
cocos2d-x开发记录:二,基本概念(粒子系统,Scheduler和定时器)
查看>>
去掉Flex4生成的SWF加载时的进度条
查看>>
如何使用 MasterPage
查看>>
load dll
查看>>
Linux给指定用户或全部用户(已登录)发送消息
查看>>
C语言 队列 链式结构 实现
查看>>
关于同一用户不能同时登录问题的探讨(1/2)
查看>>
android-support-v7-appcompat的配置使用
查看>>
LINUX的STRACE命令用法 [转]
查看>>
[4] 圆锥(Cone)图形的生成算法
查看>>
[16] 螺旋面(Spire)图形的生成算法
查看>>
Linux内存管理之bootmem分配器
查看>>
谈谈Flash图表中数据的采集
查看>>
C语言字符串匹配函数
查看>>