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];
以上……