MKMapView学习笔记

来源:互联网 发布:java电商项目经验 编辑:程序博客网 时间:2024/04/30 13:40

一.基本知识
iPhone可以使用CoreLocation框架确定他的物理位置,可以利用三种技术来实现该功能:GPS,WIFI定位和蜂窝基站三角网定位。但在程序中我们只需设定我们希望的精度级别,由CoreLocation决定采用哪种技术可以更好的满足我们的请求。
二.具体介绍
1.位置管理器

CLLocationManager *locationManager = [[CLLocationManager alloc] init];//创建位置管理器

locationManager.delegate=self;//设置代理

locationManager.desiredAccuracy=kCLLocationAccuracyBest;//指定需要的精度级别
locationManager.distanceFilter=1000.0f;//设置距离筛选器
[locationManager startUpdatingLocation];//启动位置管理器
2.位置管理器代理
主要的代理方法有两个
//确定当前位置和位置更新了时调用这个方法
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
   fromLocation:(CLLocation *)oldLocation
{
NSString *latitudeString=[[NSString alloc] initWithFormat:@"%g",newLocation.coordinate.latitude];
//latitudeLabel.text=latitudeString;
[latitudeString release];
NSString *longitudeString=[[NSString alloc] initWithFormat:@"%g",newLocation.coordinate.longitude];
//longitudeLabel.text=longitudeString;
[longitudeString release];
}
//位置查询遇到错误时调用这个方法
- (void)locationManager:(CLLocationManager *)manager
   didFailWithError:(NSError *)error
{
NSString *errorType = (error.code == kCLErrorDenied) ?
    @"Access Denied" : @"Unknown Error";
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Error getting Location"
                          message:errorType
                          delegate:nil
                          cancelButtonTitle:@"Okay"
                          otherButtonTitles:nil];
    [alert show];
    [alert release];
}

附一张截图:


原创粉丝点击