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

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

2015-12-17 13:30 645 查看
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 <MapKit/MapKit.h>

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

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];

以上……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: