iOS如何调起地图进行导航(高德,百度,系统自带)(URI)

    iOS (object-C)代码如何在程序中通过URI跳转高德地图百度地图以及系统自带地图进行导航操作


    最近开发一款以地图为主要结构的APP。目前国内地图 高德 百度 以及 腾讯地图应用较多,都是大公司产物,API比较健全一般都可以凭借demo接入。我就不详细说明如何接入sdk了。主要看代码:


1)百度地图如何调起APP进行导航

    NSString *url = [[NSString stringWithFormat:@"baidumap://map/direction?origin=latlng:%@,%@|name:我的位置&destination=latlng:%@,%@|name:%@&mode=driving",@"我的纬度", @"我的经度",@"目的地纬度",@"目的地经度",@"目的地名称"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;

   

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

    {

        if ([[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]] == NO)

        {

            [AutoAlertView ShowMessage:@"导航失败!"];

        }

    }else{

            [AutoAlertView ShowMessage:@"没有安装百度地图"];

      }


2)高德地图如何调起APP进行导航


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

        NSString *urlString = [[NSString stringWithFormat:@"iosamap://navi?sourceApplication=%@&poiname=%@&lat=%@&lon=%@&dev=1&style=2",@"海APP的名字",@"目的地的名字", @"目的地的纬度",@"目的地的经度" ] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        

        if ([[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]] == NO)

        {

            [AutoAlertView ShowMessage:@"导航失败!"];

        }

    }else{

    

            [AutoAlertView ShowMessage:@"没有安装高德地图"];


        }


PS:以上两种不需要添加文件与库直接就可以使用,下面第三种需要配置相对应的文件

3)直接调用ios自己带的apple map

首先添加相对应的库



然后导入头文件


#import



然后就可以找一个地方写了

        //起点

        MKMapItem *currentLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc]                         initWithCoordinate:CLLocationCoordinate2DMake((double类型的纬度),(double类型的经度)) addressDictionary:nil]];

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


        //目的地的位置


        CLLocationCoordinate2D coords =CLLocationCoordinate2DMake((double类型的纬度),(double类型的经度));



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

        

        toLocation.name = @"目的地的名字";

        

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

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

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

        [MKMapItem openMapsWithItems:items launchOptions:options];

        


以上……

你可能感兴趣的:(应用代码)