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

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

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