iOS 6苹果地图应用(MapKit)-打开外部应用(导航)
2013-06-04 17:41
423 查看
转载自:http://blog.csdn.net/shiyiyufen/article/details/8954038
也可参考这篇文章:
http://www.verydemo.com/demo_c134_i6937.html
原始地址:iOS 6苹果地图应用(MapKit)-打开外部应用
在iOS 6中,苹果把google地图换成了自己的地图,看上去不错。
效果图:
iOS 6以下(google map web)
iOS 6
实现代码
头文件导入和判断版本的预定义声明
[cpp] view
plaincopyprint?
#import <MapKit/MapKit.h>
define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
具体实现
[cpp] view
plaincopyprint?
CLLocationCoordinate2D coords1 =
CLLocationCoordinate2DMake(30.691793,104.088264);
CLLocationCoordinate2D coords2 =
CLLocationCoordinate2DMake(30.691293,104.088264);
if (SYSTEM_VERSION_LESS_THAN(@"6.0"))// ios6以下,调用google map
{
NSString *urlString = [[NSString alloc]
initWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f&dirfl=d",
coords1.latitude,coords1.longitude,coords2.latitude,coords2.longitude];
NSURL *aURL = [NSURL URLWithString:urlString];
//打开网页google地图
[[UIApplication sharedApplication] openURL:aURL];
}else// 直接调用ios自己带的apple map
{
//当前的位置
//MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];
//起点
MKMapItem *currentLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coords1 addressDictionary:nil]];
//目的地的位置
MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coords2 addressDictionary:nil]];
toLocation.name = @"目的地";
NSArray *items = [NSArray arrayWithObjects:currentLocation, toLocation, nil];
/*
//keys
MKLaunchOptionsMapCenterKey:地图中心的坐标(NSValue)
MKLaunchOptionsMapSpanKey:地图显示的范围(NSValue)
MKLaunchOptionsShowsTrafficKey:是否显示交通信息(boolean NSNumber)
//MKLaunchOptionsDirectionsModeKey: 导航类型(NSString)
{
MKLaunchOptionsDirectionsModeDriving:驾车
MKLaunchOptionsDirectionsModeWalking:步行
}
//MKLaunchOptionsMapTypeKey:地图类型(NSNumber)
enum {
MKMapTypeStandard = 0,
MKMapTypeSatellite,
MKMapTypeHybrid
};
*/
NSDictionary *options = @{
MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapTypeKey:
[NSNumber numberWithInteger:MKMapTypeStandard],
MKLaunchOptionsShowsTrafficKey:@YES
};
//打开苹果自身地图应用,并呈现特定的item
[MKMapItem openMapsWithItems:items launchOptions:options];
}
也可参考这篇文章:
http://www.verydemo.com/demo_c134_i6937.html
原始地址:iOS 6苹果地图应用(MapKit)-打开外部应用
在iOS 6中,苹果把google地图换成了自己的地图,看上去不错。
效果图:
iOS 6以下(google map web)
iOS 6
实现代码
头文件导入和判断版本的预定义声明
[cpp] view
plaincopyprint?
#import <MapKit/MapKit.h>
define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
具体实现
[cpp] view
plaincopyprint?
CLLocationCoordinate2D coords1 =
CLLocationCoordinate2DMake(30.691793,104.088264);
CLLocationCoordinate2D coords2 =
CLLocationCoordinate2DMake(30.691293,104.088264);
if (SYSTEM_VERSION_LESS_THAN(@"6.0"))// ios6以下,调用google map
{
NSString *urlString = [[NSString alloc]
initWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f&dirfl=d",
coords1.latitude,coords1.longitude,coords2.latitude,coords2.longitude];
NSURL *aURL = [NSURL URLWithString:urlString];
//打开网页google地图
[[UIApplication sharedApplication] openURL:aURL];
}else// 直接调用ios自己带的apple map
{
//当前的位置
//MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];
//起点
MKMapItem *currentLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coords1 addressDictionary:nil]];
//目的地的位置
MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coords2 addressDictionary:nil]];
toLocation.name = @"目的地";
NSArray *items = [NSArray arrayWithObjects:currentLocation, toLocation, nil];
/*
//keys
MKLaunchOptionsMapCenterKey:地图中心的坐标(NSValue)
MKLaunchOptionsMapSpanKey:地图显示的范围(NSValue)
MKLaunchOptionsShowsTrafficKey:是否显示交通信息(boolean NSNumber)
//MKLaunchOptionsDirectionsModeKey: 导航类型(NSString)
{
MKLaunchOptionsDirectionsModeDriving:驾车
MKLaunchOptionsDirectionsModeWalking:步行
}
//MKLaunchOptionsMapTypeKey:地图类型(NSNumber)
enum {
MKMapTypeStandard = 0,
MKMapTypeSatellite,
MKMapTypeHybrid
};
*/
NSDictionary *options = @{
MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapTypeKey:
[NSNumber numberWithInteger:MKMapTypeStandard],
MKLaunchOptionsShowsTrafficKey:@YES
};
//打开苹果自身地图应用,并呈现特定的item
[MKMapItem openMapsWithItems:items launchOptions:options];
}
相关文章推荐
- iOS 6苹果地图应用(MapKit)-打开外部应用
- iOS 6苹果地图应用(MapKit)-打开外部应用
- iOS 6苹果地图应用(MapKit)-内置开发
- iOS开发 - iOS实现应用内打开第三方地图app进行导航
- iOS应用根据经纬度打开不同地图app进行导航
- IOS实现应用内打开第三方地图app进行导航
- 封装的导航工具类,两行代码搞定iOS App内部跳转第三方应用(百度、高德、苹果)地图导航
- IOS实现应用内打开第三方地图app进行导航
- IOS 苹果自带地图、百度地图、高德地图打开方式
- iOS开发调用苹果自带的地图应用
- iOS.定位服务与地图应用.04.使用iOS苹果地图
- iOS打开外部应用、浏览器
- 在程序中使用代码打开苹果自带的地图并实现导航
- iOS.定位服务与地图应用.06.调用iOS苹果地图
- 应用跳转打开苹果,百度,高德地图应用并进入导航功能。
- ios应用中调用系统电话、浏览器、地图、邮件等 以及打开其他应用(如qq,msn)
- iOS调用外部地图导航
- ios开发中如何调用苹果自带地图导航
- ios开发中如何调用苹果自带地图导航
- 打开苹果自带地图进行导航