您的位置:首页 > 移动开发 > IOS开发

ios 地图导航

2015-06-26 15:25 495 查看
自带导航

// 使用系统自带的
       
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/"]]){  
    }  
    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"iosamap://"]]){  
       }  
    

// 进行导航
    if ([@"使用百度地图导航" isEqualToString:title])  
      {  
            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] ;  
             
         [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]];  
       }  
       else if ([@"使用高德地图导航" isEqualToString:title])  
      {  
            NSString *urlString = [[NSString stringWithFormat:@"iosamap://navi?sourceApplication=%@&backScheme=%@&poiname=%@&lat=%f&lon=%f&dev=1&style=2",@"app name", yourscheme, @"终点", _shopLat, _shopLon] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  

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

  附录:实用高德地图官方的api:http://lbs.amap.com/api/uri-api/ios-uri-explain/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 导航