APP调用手机中的苹果、高德、百度、腾讯地图进行导航

小秀秀终于更新博客啦!!!!

过年前,换了一个项目组,过年来了就变得比之前忙了,忙着忙着,立了flag学习的我,就这个样子消失啦,说好的写博客呢?5月份的我辞职了,6月入职了现在这家公司,也算是换了一个工作内容吧!之前主要是做企业项目,现在是做电商,对我来说还是接触了很多之前没有接触的东西,还是很开心~

一晃又是十月啦,我的博客也该更新咯~~

虽然写了小笔记,但是还是被自己弄掉了,写在简书里面,总不会弄掉了,内容会比较潦草,还请各位看官多多包容哦~

APP里面有一个地址,想做一个导航功能,直接调起手机里面其他APP的导航,来的比较直接,以下为参考地址,最后封装成一个类。

我们APP使用的是腾讯地图,我在腾讯开发平台没有找到使用cocoapods集成的方式,只能手动集成,这一点有些不开心~

比如APP的有些功能是基于定位来推荐的,如果切换到其他地方去呢?参考如下网址进行模拟定位,真的很实用勒~使用Xcode工具模拟定位,你可以去全世界

三方地图导航文章
苹果地图导航文章

三个地图的官方文档地址:

百度地图文档地址
高德地图文档地址
腾讯地图文档地址

百度文档解释坐标系地址

我们常说的坐标系有哪些?

  1. WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。

  2. GCJ02:又称火星坐标系,是由中国国家测绘局制定的地理坐标系统,是由WGS84加密后得到的坐标系。

  3. BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

国外使用WGS84坐标系,国内至少使用BD09坐标系

最后将代码封装成一个如下的类


+(void)jumpMapsByLat:(NSString *)lat lon:(NSString *)lon address:( NSString *)address{

 NSString *appName = [[[NSBundle mainBundle] infoDictionary]objectForKey:@"CFBundleDisplayName"];

 UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"请选择地图" message:nil preferredStyle:UIAlertControllerStyleActionSheet];

 UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"使用苹果自带地图导航" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

 //起点

 MKMapItem *currentLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:[QMDataManager shareManager].location.coordinate addressDictionary:nil]];

 currentLocation.name = @"我的位置";

 CLLocationCoordinate2D coords2 = CLLocationCoordinate2DMake(lat.doubleValue, lon.doubleValue);

 //目的地的位置

 MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coords2 addressDictionary:nil]];

 toLocation.name = address;

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

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

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

 [MKMapItem openMapsWithItems:items launchOptions:options];

 }];

 UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"使用百度地图导航" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

 if (lat.length == 0|| lon.length == 0) {

 [QMToastManager showWarning:@"暂无坐标信息"];

 return ;

 }

 NSString *urlString = [[NSString stringWithFormat:@"[baidumap://map/direction?origin={{我的位置}}&destination=%@,%@&coord_type=gcj02](baidumap://map/direction?origin=%7B%7B%E6%88%91%E7%9A%84%E4%BD%8D%E7%BD%AE%7D%7D&destination=%25@,%25@&coord_type=gcj02) &mode=walking&src=%@",lat,lon,appName] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

 NSURL *url = [NSURL URLWithString:urlString];

 [[UIApplication sharedApplication] openURL:url];

 }];

 UIAlertAction *action3 = [UIAlertAction actionWithTitle:@"使用高德地图导航" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

 if (lat.length == 0|| lon.length == 0) {

 [QMToastManager showWarning:@"暂无坐标信息"];

 return ;

 }

 NSString *urlString = [[NSString stringWithFormat:@"[iosamap://navi?dev=0&sourceApplication=%@&poiname=%@&lat=%@&lon=%@](iosamap://navi?dev=0&sourceApplication=%25@&poiname=%25@&lat=%25@&lon=%25@)",appName ,address,lat,lon] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

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

 }];

 UIAlertAction *action4 = [UIAlertAction actionWithTitle:@"使用腾讯地图导航" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

 if (lat.length == 0|| lon.length == 0) {

 [QMToastManager showWarning:@"暂无坐标信息"];

 return ;

 }

 NSString *urlString = [[NSString stringWithFormat:@"[qqmap://map/routeplan?type=walk&from=我的位置&to=%@&tocoord=%@,%@&referer=%@](qqmap://map/routeplan?type=walk&from=%E6%88%91%E7%9A%84%E4%BD%8D%E7%BD%AE&to=%25@&tocoord=%25@,%25@&referer=%25@)", address, lat, lon, kTengXunMapAppKey] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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

 }];

 UIAlertAction *action5 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

 [controller dismissViewControllerAnimated:YES completion:nil];

 }];

 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"[http://maps.apple.com](http://maps.apple.com)"]]) {

 [controller addAction:action1];

 }

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

 [controller addAction:action2];

 }

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

 [controller addAction:action3];

 }

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

 [controller addAction:action4];

 }

 [controller addAction:action5];

 [CurrentAppDelegate.window.rootViewController presentViewController:controller animated:YES completion:nil];

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容