ios 地图导航

自带导航

// 使用系统自带的

        NSString *destination = 地址;

        if ((destination.length ==0)) return;

        // 2.地理编码

        CLGeocoder *geocoder = [[CLGeocoderalloc] init];

        [geocoder geocodeAddressString:destinationcompletionHandler:^(NSArray *placemarks,NSError *error) {

            if( placemarks.count ==0 || error) return ;

            // 2.1 拿到 CLPlaceMark 对象

            CLPlacemark *clpm = [placemarksfirstObject];

            // 2.2 创建 MKPlacemark

            MKPlacemark *mkpm = [[MKPlacemarkalloc] initWithPlacemark:clpm];

            // 2.3 创建 MKMapItem 获取到目的地信息

            MKMapItem *destionationItem = [[MKMapItemalloc] initWithPlacemark:mkpm];

            // 2.4 获取起点信息

            MKMapItem *sourceItem = [MKMapItemmapItemForCurrentLocation];

            // 2.5 开始导航

            [selfstartNavitionWithDestionationItem:destionationItemsourceItem:sourceItem];

 

导航方法: 

/**

 *  开始导航

 *

 *  @param destionationItem 目的地

 *  @param sourceItem       起点

 */

- (void)startNavitionWithDestionationItem:(MKMapItem *)destionationItem sourceItem:(MKMapItem *) sourceItem

{

    NSArray *items =@[sourceItem,destionationItem];

    NSDictionary *options =@{

                              MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,// 方式

                              MKLaunchOptionsShowsTrafficKey :@YES,            //开启路况

                              MKLaunchOptionsMapTypeKey :@(MKMapTypeStandard)  //地图模式

                              };

    // 开始导航

    [MKMapItemopenMapsWithItems:items launchOptions:options];

}

使用其他方式(调起其他app转载):

// 判断地图是不是存在  

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

  1.     }  
  2.     if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"iosamap://"]]){  
  3.        }  
  4.     
  5. // 进行导航
  6.     if ([@"使用百度地图导航" isEqualToString:title])  
  7.       {  
  8.             NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/direction?origin=latlng:%f,%f|name:我的位置&destination=latlng:%f,%f|name:终点&mode=driving",currentLat, currentLon,_shopLat,_shopLon] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;  
  9.              
  10.          [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]];  
  11.        }  
  12.        else if ([@"使用高德地图导航" isEqualToString:title])  
  13.       {  
  14.             NSString *urlString = [[NSString stringWithFormat:@"iosamap://navi?sourceApplication=%@&backScheme=%@&poiname=%@&lat=%f&lon=%f&dev=1&style=2",@"app name", yourscheme, @"终点", _shopLat, _shopLon] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
  15.          [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]];  
  16.      }  

  附录:实用高德地图官方的api:http://lbs.amap.com/api/uri-api/ios-uri-explain/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值