美文网首页iOS开发经验地图iOS 开发
iOS调用高德,百度,苹果自带地图进行导航

iOS调用高德,百度,苹果自带地图进行导航

作者: 天那边灬王志豪 | 来源:发表于2017-08-15 10:26 被阅读1569次

          由于考虑到,APP包的大小。在做导航的时候,我们没有必要,把高德或者百度等第三方sdk放到项目来进行集成。不仅费时而且费力,现在网上关于三方APP导航的文章太多。这里不再赘述太多。

    先看下效果图:

    选择导航的APP 苹果自带高德地图 高德导航 百度导航

        首先我们需要配置一些白名单。如下截图:

    白名单

    info.plist添加LSApplicationQueriesSchemes,设置为Array。添加对应的白名单;

    这里以高德,百度为例,高德:iosamap百度:baidumap;设置好以后就可以开始代码部分。

    代码部分具体步骤如下。不想看的同学,直接下载demo。demo具体实现都MapTool工具类中写好。可直接使用下面的方法。

    /**

    调用三方导航

    @param coordinate经纬度

    @param name地图上显示的名字

    @param tager当前控制器

    */

    - (void)navigationActionWithCoordinate:(CLLocationCoordinate2D)coordinate WithENDName:(NSString*)name tager:(UIViewController*)tager;

          要进行导航首先要知道终点的经纬度。

          导入#import<MapKit/MapKit.h>。

    定义一个CLLocationCoordinate2D属性,包含你目的地的经纬度。

    @property(nonatomic,assign)CLLocationCoordinate2D   coordinate;

    这里假设位置为self.coordinate=CLLocationCoordinate2DMake(34.72,113.92);

    拿到位置,就可以进行导航了

    首先是苹果自带的高德简版地图:

    代码就这么多

    MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];

    MKMapItem *tolocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coordinate addressDictionary:nil]];

    tolocation.name = map_title;

    [MKMapItem openMapsWithItems:@[currentLocation,tolocation]launchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,

    MKLaunchOptionsShowsTrafficKey:[NSNumber numberWithBool:YES]}];

    高德地图:

    NSString *urlsting =[[NSString stringWithFormat:@"iosamap://navi?sourceApplication= &backScheme= &lat=%f&lon=%f&dev=0&style=2",coordinate.latitude,coordinate.longitude]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    [[UIApplicationsharedApplication]openURL:[NSURL URLWithString:urlsting]];

    百度地图:

    NSString *urlsting =[[NSString stringWithFormat:@"baidumap://map/direction?origin={{我的位置}}&destination=latlng:%f,%f|name=目的地&mode=driving&coord_type=gcj02",coordinate.latitude,coordinate.longitude] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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

    到这里三方App导航就已经完成。demo在上面。没看到的朋友,看这里Demo下载

    相关文章

      网友评论

      本文标题:iOS调用高德,百度,苹果自带地图进行导航

      本文链接:https://www.haomeiwen.com/subject/uvyqlttx.html