客户端调用百度、高德、iPhone自带地图规划路线

5 篇文章 0 订阅

客户端调用百度、高德、iPhone自带地图规划路线


#pragma mark--查看路线
-(void)lineSearch{
    BOOL hasBaiduMap = NO;
    BOOL hasGaodeMap = NO;
    
    
    NSMutableArray *titleArr =[NSMutableArray array];
    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidumap://map/"]]){
        hasBaiduMap = YES;
        [titleArr addObject:@"使用百度地图"];
    }
    if ([[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"iosamap://"]]){
        hasGaodeMap = YES;
        [titleArr addObject:@"使用高德地图"];
    }
    [titleArr addObject:@"使用自带地图"];
    
    NSString *firstStr = titleArr[0];
    NSString *secondStr = titleArr.count > 1 ? titleArr[1] : nil;
    NSString *thirdStr = titleArr.count > 2 ? titleArr[2] : nil;
    UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"选择地图" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:firstStr, secondStr, thirdStr, nil];
    
    [sheet showInView:self.view];
}

#pragma mark--
#pragma mark--UIActionSheet delegate
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    NSString *actionTitle = [actionSheet buttonTitleAtIndex:buttonIndex];
    
    CLLocationCoordinate2D destinationCoordinate = CLLocationCoordinate2DMake(31.1594320000,121.4358650000);
    CLLocationCoordinate2D startCoordinate = CLLocationCoordinate2DMake(currentLocation.location.coordinate.latitude, currentLocation.location.coordinate.longitude);
    
    if ([actionTitle isEqualToString:@"使用百度地图"]){
        
        NSString *sName = @"我的位置";
        CGFloat sLatitude = destinationCoordinate.latitude;
        CGFloat sLongitude = destinationCoordinate.longitude;
        
        NSString *dName = @"目的地";
        CGFloat dLatitude = startCoordinate.latitude;
        CGFloat dLongitude = startCoordinate.longitude;
        
        NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/direction?origin=latlng:%f,%f|name:%@&destination=latlng:%f,%f|name:%@&mode=driving",sLatitude, sLongitude,sName,dLatitude, dLongitude,dName] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ;
        [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]];
    }
    else if ([actionTitle isEqualToString:@"使用高德地图"]){
        
        
        
        NSString *applicationName = [HSFunction getAppDisplayName];
        NSString *sName = @"我的位置";
        CGFloat sLatitude = destinationCoordinate.latitude;
        CGFloat sLongitude = destinationCoordinate.longitude;
        
        NSString *dName = @"目的地";
        CGFloat dLatitude = startCoordinate.latitude;
        CGFloat dLongitude = startCoordinate.longitude;
        
        NSString *urlString2 = [[NSString stringWithFormat:@"iosamap://path?sourceApplication=%@&sid=BGVIS1&slat=%f&slon=%f&sname=%@&did=BGVIS2&dlat=%f&dlon=%f&dname=%@&dev=0&m=0&t=0",applicationName,sLatitude,sLongitude,sName,dLatitude,dLongitude,dName]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString2]];
        
    }
    else if ([actionTitle isEqualToString:@"使用自带地图"]){//直接调用ios自己带的apple map
        
        //当前的位置
        MKMapItem *currentLoca = [MKMapItem mapItemForCurrentLocation];
        
        //目的地的位置
        MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:destinationCoordinate addressDictionary:nil]];
        toLocation.name = @"目的地";
        
        NSArray *items = [NSArray arrayWithObjects:currentLoca, toLocation, nil];
        
        NSDictionary *options = @{ MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving, MKLaunchOptionsMapTypeKey: [NSNumber numberWithInteger:MKMapTypeStandard], MKLaunchOptionsShowsTrafficKey:@YES };
        
        //打开苹果自身地图应用,并呈现特定的item
        [MKMapItem openMapsWithItems:items launchOptions:options];
        
    }
    else{
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值