《IOS应用开发基础教程》.ppt
《《IOS应用开发基础教程》.ppt》由会员分享,可在线阅读,更多相关《《IOS应用开发基础教程》.ppt(27页珍藏版)》请在三一办公上搜索。
1、IOS应用开发基础教程,QQ学习群:262779381,第十二章 GPS位置服务与地图编程,QQ学习群:262779381,教学目标:1.了解MKMapView框架的基本知识。2.掌握MKMapView定位的基本使用方法,3.掌握IOS地图编程中的大头针放置方法。,QQ学习群:262779381,12.1GPS位置服务编程,在学习如何使用MapKit类之前,我们还要了解一下在IOS设备中一个重要的类CLLocation,它的作用就是定位设备的当前位置,这个功能也会用于我们在使用MapKit类中。CLLocation类位于CoreLocation.framework框架中,所以如果我们要使用CL
2、Location类,我们还需要将CoreLocation.framework导入到项目中,这里我们还是在将导入方法讲述一遍,助于读者掌握。在左侧项目栏中,点击项目名称,然后XCode的中间区域会出现一排选项卡,然后选择Build Phases选项卡,接下来选择Link Binary With Libraries标签,在这个标签里就能添加我们所需要的框架了,如图所示。,QQ学习群:262779381,QQ学习群:262779381,QQ学习群:262779381,接下来,我们就通过一个简单例子来学习如何通过定位系统获取到当前设备所在的地理位置的坐标信息。在XCode中新建一个Single Vie
3、w Application项目模板,然后使用上述导入框架的方法导入CoreLocation.framework框架,接着我们还要在AppDelegate.h头文件中导入CoreLocation框架的头文件,并且使用CLLocationManagerDelegate这个用于定位的协议。1.#import 2.#import 3.interface AppDelegate:UIResponder 4.,QQ学习群:262779381,然后我们在AppDelete.m文件的初始化方法中使用CLLocationManager类来获取当前设备的地理位置信息。5.-(BOOL)application:(U
4、IApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions6.7.self.window=UIWindow alloc initWithFrame:UIScreen mainScreen bounds autorelease;8.self.window.backgroundColor=UIColor whiteColor;9.self.window makeKeyAndVisible;10.CLLocationManager*locationManager=CLLocationMana
5、ger allocinit;11.locationManager.delegate=self;12.locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters;13.locationManager startUpdatingLocation;14.return YES;15.,在代码中,我们首先创建了一个CLLocationManager的实例,然后对它进行初始化,并设置了实例的代理为本身,这样才可以使用相应的代理方法。setDesiredAccuracy方法是用来设置定位的精确度,它包含了5种不同精确度的值。k
6、CLLocationAccuracyBest:精确度最高kCLLocationAccuracyNearestTenMeters:精确度为10米kCLLocationAccuracyHundredMeters:精确度为100米kCLLocationAccuracyKilometer:精确度为1000米kCLLocationAccuracyThreeKilometers:精确度为3000米如果在项目中对地理位置定位的精确度要求比较高,就将值设置为kCLLocationAccuracyBest,一般情况下是设置为10米。然后通过CLLocationManager的实例调用startUpdatingL
7、ocation方法,开始更新当前的地理位置信息,这个方法是实时更新的,也就是说每秒更新一次,我们知道开启定位服务是非常耗电和耗流量的,所以一旦我们获取了当前的地理位置信息之后,我们还需要通过实例调用stopUpdatingLocation方法去停止更新地理位置信息。,QQ学习群:262779381,QQ学习群:262779381,下面我们要实现CLLocationManagerDelegate协议中的代理方法。获取地理位置信息坐标是通过CLLocationCoordinate2D类来实现,CLLocationCoordinate2D是一个结构体,结构体中包含了两个值,latitude和long
8、itude纬度和经度。通过这个两个值就能显示地理位置的坐标信息。1.-(void)locationManager:(CLLocationManager*)manager2.didUpdateToLocation:(CLLocation*)newLocation3.fromLocation:(CLLocation*)oldLocation4.5.CLLocationCoordinate2D coordinate=newLocation.coordinate;6.NSLog(当前位置坐标为:%f,%f,coordinate.longitude,coordinate.latitude);7.mana
9、ger stopUpdatingLocation;8.这个代理方法中的3个参数分别代表了CLLocationManager实例、新的位置信息和旧的位置信息。构建并运行,可以看到在控制台上输出了当前设备的地理位置坐标的信息。2013-11-18 19:47:39.174 CLLocation655:c07 Application windows are expected to have a root view controller at the end of application launch2013-11-18 19:47:40.263 CLLocation655:c07 当前位置坐标为:-
10、122.030721,37.331464,在读取完地理位置坐标信息之后,比如我们又到了另一个地方,或者说想要去另一个地方,我们还可以通过CLLocationDistance类来获取到两个地点之间的距离。24.-(void)locationManager:(CLLocationManager*)manager25.didUpdateToLocation:(CLLocation*)newLocation26.fromLocation:(CLLocation*)oldLocation27.28.29.CLLocationDistance distance=newLocation distanceFr
11、omLocation:oldLocation;30.NSLog(两地之间的距离为:%f,distance);31.oldLocation是上一次定位的地理位置的坐标信息,读者也可以重新定义一个准确的地理位置。最后构建并运行程序,可以在控制台上看到两的地理位置距离的信息。因为我们的设备并没有移动,所以两个坐标信息是一致的。CLLocation655:c07 两地之间的距离为:-1.000000,QQ学习群:262779381,和安卓相比,iOS的地图使用更为方便,我们只需要创建一个MKMapView类的实例然后将它添加到视图当中即可。XCode中自带的MapKit框架是基于Google地图的框架
12、,它调用了一些Google地图的基本功能。MKMapView类是属于MapKit.framework框架中,所以我们在使用地图之前还是要将MapKit框架导入到项目中,并在头文件中添加框架的头文件。在XCode中新建一个Single View Application项目模板,首先我们把MapKit框架和CoreLocation框架都加入到项目中,接着我们将头文件和相应的协议添加到项目中。MapKit类库中也提供了很多代理方法,都遵循MKMapViewDelegate协议。还要添加定位的CLLocationManagerDelegate协议。首先在ViewController.h中引入相关头文件
13、以及协议方法。,QQ学习群:262779381,12.2MKMapView编程,QQ学习群:262779381,1.#import 2.#import 3.#import 4.interface ViewController:UIViewController5.end 接下来我们将UIViewController的实例添加到窗口上,并将它设置为窗口的根视图控制器。-AppDelegate.m-6.#import AppDelegate.h7.#import ViewController.h8.-(BOOL)application:(UIApplication*)application didF
14、inishLaunchingWithOptions:(NSDictionary*)launchOptions 9./Override point for customization after application launch.10.ViewController*vc=ViewController allocinit;11.self.window.rootViewController=vc;12.vc.view.backgroundColor=UIColor whiteColor;13.vc release;14.return YES;15.,QQ学习群:262779381,一切准备工作就
15、绪后就可以开始添加我们的地图信息了。我们在ViewController.h文件中创建一个MKMapView的实例。-ViewController.h-16.interface ViewController:UIViewController17.18.MKMapView*mapView;19.20.end,QQ学习群:262779381,接下来我们在实现文件中对MKMapView的实例进行初始化的操作,并设置相关的属性。-ViewController.m-21.-(void)viewDidLoad22.23.super viewDidLoad;24.mapView=MKMapView alloc
16、initWithFrame:CGRectMake(0,0,320,480);25.mapView.showsUserLocation=YES;26.mapView.delegate=self;27.mapView.mapType=MKMapTypeStandard;28.CLLocationCoordinate2D coords=CLLocationCoordinate2DMake(39.915352,116.397105);29./北京故宫坐标点30.MKCoordinateSpan Span=0.1,0.1;31.MKCoordinateRegion region=MKCoordinate
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IOS应用开发基础教程 IOS 应用 开发 基础教程
链接地址:https://www.31ppt.com/p-6072028.html