ios项目中调用百度、高德、本机地图导航
来源:互联网 发布:社区下单系统源码 编辑:程序博客网 时间:2024/05/29 21:35
最近写项目遇到不加官方SDK,而直接调接口的要求,话不多说直接上代码:
百度地图
第一步 准备工作
调用百度地图导航先需要导入以下几个包:
其中需要用到百度地图的两个framework,链接在这:http://lbsyun.baidu.com/index.php?title=iossdk/sdkiosdev-download
还有百度导航的文件两个.a文件,链接在这:http://lbsyun.baidu.com/index.php?title=ios-navsdk/sdkios-nav-download
然后剩下的只需自行添加到building phases中,不要遗漏了
第二步 添加info
在info中在LSApplicationQueriesSchemes下添加baidumap,效果如下图:
第三步 代码部分
在需要调用的.h文件中加入
#import <BaiduMapAPI_Base/BMKBaseComponent.h>#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>
然后调用代码
//判断是否有百度地图 bool hasBaiduMap = NO; if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"baidumap://"]]) { hasBaiduMap = YES; }if (hasBaiduMap) { UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提醒" message:@"启动百度地图" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]; UIAlertAction *baidu = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { //百度地图 [self startBaiduMap]; }]; [alert addAction:cancel]; [alert addAction:baidu]; [self presentViewController:alert animated:YES completion:nil]; }
//百度地图-(void) startBaiduMap{ CLLocationCoordinate2D myLocation = CLLocationCoordinate2DMake(29.569389,106.557978); CLLocationCoordinate2D storeLoacation = CLLocationCoordinate2DMake(29.615133,106.605053); //转换国测局坐标(google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标)至百度坐标 NSDictionary* testdic = BMKConvertBaiduCoorFrom(myLocation,BMK_COORDTYPE_GPS); NSDictionary* testdic2 = BMKConvertBaiduCoorFrom(storeLoacation,BMK_COORDTYPE_GPS); myLocation = BMKCoorDictionaryDecode(testdic); storeLoacation = BMKCoorDictionaryDecode(testdic2); NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/direction?origin=latlng:%f,%f|name:%@&destination=latlng:%f,%f|name:%@&mode=driving", myLocation.latitude, myLocation.longitude, @"我的位置", storeLoacation.latitude, storeLoacation.longitude, @"美心洋人街"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ; [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]]; }
高德地图
第一步 准备工作
导入所需的两个包:
可以自行去高德地图官网下载这里就不贴链接了,注意只需要这两个包,不用到其他功能
第二步 添加info
在info中在LSApplicationQueriesSchemes下添加iosamap,效果如下图:
第三步 代码部分
#import <AMapFoundationKit/AMapFoundationKit.h>
然后调用代码
//高德地图-(void) startGaodeMap{ CLLocationCoordinate2D myLocation = CLLocationCoordinate2DMake(29.569389,106.557978); CLLocationCoordinate2D storeLoacation = CLLocationCoordinate2DMake(29.615133,106.605053); myLocation = AMapCoordinateConvert(myLocation,AMapCoordinateTypeGPS);; storeLoacation =AMapCoordinateConvert(storeLoacation,AMapCoordinateTypeGPS);; NSString *urlString = [[NSStringstringWithFormat:@"iosamap://path?sourceApplication=%@&sid=BGVIS1&slat=%f&slon=%f&sname=%@&did=BGVIS2&dlat=%f&dlon=%f&dname=%@&dev=0&m=0&t=0",@"", myLocation.latitude, myLocation.longitude,@"我的位置", storeLoacation.latitude, storeLoacation.longitude, destName] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; [[UIApplication sharedApplication]openURL:[NSURLURLWithString:urlString]];}
//判断是否有高德地图 bool hasGaodeMap = NO; if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"iosamap://"]]) { hasGaodeMap = YES; }if (hasGaodeMap) { UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提醒" message:@"启动ga地图" preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]; UIAlertAction *gaode = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { //高德地图 [self startGaodeMap]; }]; [alert addAction:cancel]; [alert addAction:gaode]; [self presentViewController:alert animated:YES completion:nil]; }
阅读全文
1 0
- ios项目中调用百度、高德、本机地图导航(二)
- ios项目中调用百度、高德、本机地图导航
- ios调用百度、高德地图 导航功能
- App调用百度高德地图导航
- 关于调用本机的百度、高德地图
- 调用高德导航,百度导航,腾讯地图
- 地图-导航(百度/高德)
- 调用百度和高德地图导航,好用
- IOS 地图导航(其中包括苹果地图、百度地图、高德地图、谷歌地图)
- Android app调用第三方地图(百度地图,高德地图,谷歌地图)导航
- 调用苹果地图、百度地图、高德地图导航(不需要集成sdk)
- Android app调用第三方地图(百度地图,高德地图)导航
- IOS 高德地图导航
- appcan中,地图插件调用百度导航
- 关于代码直接调用高德地图和百度地图导航功能的代码
- iOS 跳转到地图后导航(高德地图,百度地图,腾讯地图,苹果手机原生的地图)
- app调用另外一个app启动需要info.plist中设置如下,例如app调用高德地图,百度地图进行导航(详细教程)
- iOS开发——项目中的地图跳转(苹果地图,百度地图,高德地图)
- Android 底部导航栏 (底部 Tab) 最佳实践
- 前台进程启动打印错误日志
- python3 网络爬虫(七)针对scrapy并发请求的一点看法(提速篇)
- Fragment中调用getActivity()为null的问题
- arcgis api for js 加载google地图
- ios项目中调用百度、高德、本机地图导航
- 通过sql语句快速查询数据库共有多少张表
- oracle误删除表或者表数据的恢复方法总结
- localStorage换肤 简易版
- SDUT-数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- javascript 原生js修改浏览器复制、粘贴内容
- 友元类实现数组排序
- kubernetes资源对象--DaemonSet
- Shiro集成CAS登录成功跳转地址问题