WEB开发网
开发学院手机开发iPhone 开发 实战iPhone GPS定位系统 阅读

实战iPhone GPS定位系统

 2010-07-06 05:03:00 来源:WEB开发网   
核心提示:}- (void) locationManager: (CLLocationManager *) managerdidFailWithError: (NSError *) error {NSString *msg = [[NSString alloc]initWithString:@"Error obtain

}

- (void) locationManager: (CLLocationManager *) manager

didFailWithError: (NSError *) error {

NSString *msg = [[NSString alloc]

initWithString:@"Error obtaining location"];

UIAlertView *alert = [[UIAlertView alloc]

initWithTitle:@"Error"

message:msg

delegate:nil

cancelButtonTitle: @"Done"

otherButtonTitles:nil];

[alert show];

[msg release];

[alert release];

}

- (void) dealloc{

[lm release];

[latitudeTextField release];

[longitudeTextField release];

[accuracyTextField release];

[super dealloc];

}

前面的代码创建了 CLLocationManager类的一个实例,在使用对象之前,你应该检查用户是否开启了设备的定位服务,如果开启了,你可以使用 desiredAccuracy属性指定想要的精度,使用下面的常量指定想要的精度:

l kCLLocationAccuracyBest

l kCLLocationAccuracyNearestTenMeters

l kCLLocationAccuracyHundredMeters

l kCLLocationAccuracyKilometer

l kCLLocationAccuracyThreeKilometers

distanceFilter属性让你指定设备必须移动多少距离位置信息才会更新,这个属性的单位是米。如果你想得到所有移动的通知,可以使用kCLDistanceFilterNone常量,最后,使用 startUpdatingLocation方法启动位置管理器。

要获得位置信息,需处理下面两个事件:

l locationManager:didUpdateToLocation:fromLocation:

l locationManager:didFailWithError:

当获得一个新的定位值时,设备触发 locationManager:didUpdateToLocation:fromLocation:事件,如果位置管理器不能确定位置信息,就会触发 locationManager:didFailWithError:事件。

当设备可以确定位置时,你可能想显示经纬度值和精度,这时你可以使用CLLocation对象,它的horizontalAccuracy属性可以指定精度范围,单位是米。

按Command- r在iPhone模拟器上测试该程序,图2显示了模拟器显示的位置经纬度值,同时显示了精度。

上一页  1 2 3 4 5 6  下一页

Tags:实战 iPhone GPS

编辑录入:coldstar [复制链接] [打 印]
赞助商链接