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];
以上……
最近开发一款以地图为主要结构的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];
以上……
相关文章推荐
- ios 调用系统照片库/拍照/录像
- 记一个iOS开发中cell的重用机制引发的错误
- iOS开发之关闭ARC环境
- iOS---通知传值的使用
- iOS RTMP 视频直播开发笔记(6)- 封包 FLV
- iOS开发之OC内存管理(二)
- ios 一行代码移除所有字视图
- iOS&nbsp;添加自定义字体方法详解
- IOS学习笔记之对象复制
- iOS Core Animation 简明系列教程
- ios9API基础知识总结(二)
- iOS工作小常识
- iOS 9开发小技巧
- IOS 开发问题解决
- 获取iOS项目名称及版本号
- 从此走上一条iOS程序猿不归路。。。
- iOS json解析遇到@"";@"<null>";null 处理
- iOS-比较两张图片内容是否相同,判断一个imageView是否有image
- iOS一次性移除所有子视图
- iOS camera 相关