原始地址:iOS 6苹果地图应用(MapKit)-打开外部应用
在iOS 6中,苹果把google地图换成了自己的地图,看上去不错。
效果图:
iOS 6以下(google map web)
iOS 6
实现代码
头文件导入和判断版本的预定义声明
- #import <MapKit/MapKit.h>
- define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
- 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];
- }