IOS学习之——地图3 调用苹果地图

欢迎转载,转载请注明出处

本文地址:http://blog.csdn.net/zhenggaoxing/article/details/42710853

综述:

这里的苹果地图调用是指从咱们的软件跳转到苹果地图,我们要做的就是把数据设置弄好,在使用苹果地图就可以了

苹果地图上展示一个点

添加相关的framework

我们要再苹果地图上展示一个点,需要什么呢?1需要位置,2需要位置相关的信息 。有这两个信息就可以了

    CLGeocoder *geocoder=[CLGeocoder new];
    // 使用地理信息反编码,来获取位置和信息
    [geocoder geocodeAddressString:textQueryTextField.text completionHandler:^(NSArray *placemarks, NSError *error) {
        NSLog(@"查询记录数目:%i",(int)[placemarks count]);
        if ([placemarks count]>0) {
            CLPlacemark *placemark=placemarks[0];

            CLLocationCoordinate2D coordinate=placemark.location.coordinate;
            NSDictionary *address=placemark.addressDictionary;

            // MKPlacemark 是地图相关信息的类
            MKPlacemark *place=[[MKPlacemark alloc]initWithCoordinate:coordinate/*位置*/ addressDictionary:address/*相关的信息*/];

            // MKMapItem 类封装了有关地图上点的信息
            MKMapItem *mapItem=[[MKMapItem alloc]initWithPlacemark:place];
            // 调用苹果地图的方法
            [mapItem openInMapsWithLaunchOptions:nil];

            [textQueryTextField resignFirstResponder];
        }
    }];

要解释一下:1获取了位置信息(CLPlacemark) 2 把位置和信息传给地图(MKPlacemark)3 调用苹果地图(openInMapsWithLaunchOptions 方法)

效果:

展示路线

这里展示的路线是从手机定位位置,到你想去位置的路线,展示路线比展示一个点要多一个要设置的:什么方式去那个点

            //地图上设置行车路线
            NSDictionary* options =[[NSDictionary alloc]initWithObjectsAndKeys:
                                    MKLaunchOptionsDirectionsModeDriving,MKLaunchOptionsDirectionsModeKey, nil];

            MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:place];
            [mapItem openInMapsWithLaunchOptions:options];

这里解释一下:

怎么设置呢:用NSDictionary 类型的参数设置 ,

设定行车路线:

MKLaunchOptionsDirectionsModeDriving 有两个键值:

MKLaunchOptionsDirectionsModeDriving——驾车

MKLaunchOptionsDirectionsModeWalking——骑车

还有几种设定的key:

MKLaunchOptionsMapTypeKey:设定地图类型

MKLaunchOptionsShowsTrafficKey:设定交通情况

MKLaunchOptionsMapCenterKey:设定地图中心

MKLaunchOptionsMapSpanKey:设定地图跨度

看看效果

苹果地图上展示多个点

展示多个点,使用openMapsWithItems 方法实现:加载数组便可

    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:self.textTextField.text completionHandler:^(NSArray
                                                                         *placemarks, NSError *error) {
        NSLog(@"查询记录数:%i",(int)[placemarks count]);

        NSMutableArray* array = [NSMutableArray new];

        for (int i = 0; i < [placemarks count]; i++) {

            CLPlacemark* placemark = placemarks[i];

            CLLocationCoordinate2D coordinate = placemark.location.coordinate;
            NSDictionary* address = placemark.addressDictionary;

            MKPlacemark *place = [[MKPlacemark alloc]
                                  initWithCoordinate:coordinate addressDictionary:address];

            MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:place];

            [array addObject:mapItem];
        }

        //关闭键盘
        [self.textTextField resignFirstResponder];

        if ([array count] > 0) {
            [MKMapItem openMapsWithItems:array launchOptions:nil];
        }
    }];

看看效果

源代码:

https://git.oschina.net/zhengaoxing/No15.3appleMap/tree/master

时间: 2024-11-09 18:42:28

IOS学习之——地图3 调用苹果地图的相关文章

iOS 开发指南 第16章 定位服务与地图应用之使用苹果地图

1 显示地图 MKMapView MKMapViewDelegate 准备:加载MapKit.framework 设置地图样式 代理-实现代理方法 - (void)viewDidLoad { [super viewDidLoad]; 设置样式,枚举类型MKMapType self.mapView.mapType = MKMapTypeStandard; // self.mapView.mapType = MKMapTypeSatellite; 将当前视图控制器赋值给地图视图的delegate属性

ios开发中如何调用苹果自带地图导航

前段时间一直在赶项目,在外包公司工作就是命苦,天天加班不说,工作都是和工期合同挂钩的,稍微逾期就有可能被扣奖金,不谈这些伤脑筋的事情了,让我们说说iOS开发中如何调用苹果手机自带的地图. 学习如逆水行舟,不进则退.古人告诉我们要不断的反思和总结,日思则日精,月思则月精,年思则年精.只有不断的尝试和总结,才能让我们的工作和生活更加轻松愉快和美好.连着做了两个大的商城外包项目,智慧城市,搜牧通,花费了近四个月的时间,终于在反复修改后完美收工.期间的困难自不必说,以后多多总结和沟通吧.百度地图的使用之

iOS开发那些事-iOS6苹果地图有用开发

在iOS 6之后,不再使用谷歌地图了,而是使用苹果自己的地图,可是API编程接口没有太大的变化.开发者不须要再学习非常多新东西就能开发地图应用,这是负责任的做法.因此本节介绍的内容也相同适用于iOS5上执行地图应用开发. iOS应用程序中使用Map Kit API开发地图应用程序. 其核心是MKMapView类使用.我们能够设置地图显示方式.控制地图,能够在地图上加入标注. 显示地图 在Map Kit API中显示地图的视图是MKMapView,它的托付协议是MKMapViewDelegate.

iOS开发那些事-iOS6苹果地图实用开发

在iOS 6之后,不再使用谷歌地图了,而是使用苹果自己的地图,但是API编程接口没有太大的变化.开发人员不需要再学习很多新东西就能开发地图应用,这是负责任的做法.因此本节介绍的内容也同样适用于iOS5上运行地图应用开发. iOS应用程序中使用Map Kit API开发地图应用程序. 其核心是MKMapView类使用.我们可以设置地图显示方式.控制地图,可以在地图上添加标注. 显示地图 在Map Kit API中显示地图的视图是MKMapView,它的委托协议是MKMapViewDelegate.

ios开发之定位和苹果地图

ios开发之定位和苹果地图 1. LBS开发简介 需求:社交类(微信 QQ)     附件的人 购物应用  显示商家位置 (美团 大众点评) 旅游类应用(去哪儿 携程)  显示当前位置周边酒店 餐馆 功能 :定位 (获取当前位置的地图) 地图(显示某个区域的地图) 实现: 苹果:定位功能和地图功能(国内使用高德的数据) 高德地图 百度地图 搜搜地图 腾讯地图 谷歌地图... 2.地理定位 1.库的配置 2.定位功能 3方向 3.地址编码和反编码 1 地址编码 获取经纬度 确定地理位置 2 地址反

IOS学习之——地图2 跟踪用户位置变化

欢迎转载,转载请注明出处 本文地址:http://blog.csdn.net/zhenggaoxing/article/details/42707685 综述 mapkit提供了跟踪用户位置和方向变化的API,所以我们这里不用自定编辑定位信息,交给系统来搞. 添加framework 实现授权获取位置信息 在iOS8中,没有用户授权程序是无法获取定位信息的,所以我们需要在info.plist上添加两个键值: NSLocationAlwaysUsageDescription NSLocationWh

iOS调用第三方地图App进行导航方法

前言 App内根据手机上装载的地图App将其显示在弹出的选择框,选择对应地图跳转进入地图导航.需要用到- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);方法判断手机是否已安装相应地图App. 要进行跳转需要先在xcode的plist文件内将目标App的url Scheme加入白名单(LSApplicationQueriesSchemes). 常见第三方地图App的url Scheme 百度地图:baidumap 高德地图:iosamap

iOS 开发之定位与苹果地图

1.LBS开发 需求: 社交类应用 ,  购物类 ,  旅游类... 功能: 定位.地图 官方提供:定位与地图(国内使用的高德的数据) 第三方:高德,百度,搜搜,腾讯,谷歌地图... 2.地理定位 2.1 库的配置 /*****地图定位*****/ //LBS --> Location Based Service //1.配置库 --> CoreLocation.framework (系统的) // --> #import <CoreLocation/CoreLocation.h&

iOS定位服务与地图开发(4)---显示地图

iOS 6之前,苹果使用的是谷歌地图,iOS 6之后,苹果使用了自己的地图(国内好像用的是高德地图),但是API编程接口与iOS 5相比没有太大变化. iOS 应用程序中使用Map Kit API开发地图应用程序,使用MKMapView类作为地图显示视图,其委托协议是MKMapViewDelegate. 1.显示地图: .h文件中代码 #import <MapKit/MapKit.h> @interface YXCViewController <MKMapViewDelegate>