CoreLocation获取当前位置信息
2012-03-13 21:17
435 查看
参考来源一:http://xiongzhend.blog.163.com/blog/static/64098501201041383342989/
参考来源二: http://blog.iosxcode4.com/archives/23
iPhone可以使用CoreLocation框架确定他的物理位置,可以利用三种技术来实现该功能:GPS,WiFi定位和蜂窝基站三角网定位。但在程序中我们只需设定我们希望的精度级别,由CoreLocation决定采用哪种技术可以更好的满足我们的请求。
1.Wi-Fi定位扫描本地路由器,使用它们的MAC地址搜索一个中心位置数据库,所有iPhone和iPod touch平台都免费提供了这种定位方式。
2.蜂窝定位则依赖于天线,但是只有iPhone上才有这样的天线。这种技术利用本地蜂窝基站进行三角定位,这些基站的位置是在手机公司安装基站时就确 定的。最后一种、也是最准确的一种定位方式是GPS,只有第二代和更新的iPhone才提供GPS。第一代iPhone没有内置GPS,目前所有iPod touch设备也没有提供GPS。
3.第三代iPhone 3G S引入了一个内置的罗盘(通过一个磁强计),并提供了用于支持它的Core Location API。
首先,将CoreGraphics.framework 加入到framework;
其次,声明中要加入<CLLocationManagerDelegate>协议;
接下来是获取数据和实现委托:
参考来源二: http://blog.iosxcode4.com/archives/23
iPhone可以使用CoreLocation框架确定他的物理位置,可以利用三种技术来实现该功能:GPS,WiFi定位和蜂窝基站三角网定位。但在程序中我们只需设定我们希望的精度级别,由CoreLocation决定采用哪种技术可以更好的满足我们的请求。
1.Wi-Fi定位扫描本地路由器,使用它们的MAC地址搜索一个中心位置数据库,所有iPhone和iPod touch平台都免费提供了这种定位方式。
2.蜂窝定位则依赖于天线,但是只有iPhone上才有这样的天线。这种技术利用本地蜂窝基站进行三角定位,这些基站的位置是在手机公司安装基站时就确 定的。最后一种、也是最准确的一种定位方式是GPS,只有第二代和更新的iPhone才提供GPS。第一代iPhone没有内置GPS,目前所有iPod touch设备也没有提供GPS。
3.第三代iPhone 3G S引入了一个内置的罗盘(通过一个磁强计),并提供了用于支持它的Core Location API。
首先,将CoreGraphics.framework 加入到framework;
其次,声明中要加入<CLLocationManagerDelegate>协议;
接下来是获取数据和实现委托:
#import "ViewController.h" #import "CoreLocation/CoreLocation.h" @implementation ViewController CLLocationManager *locationManager; CLLocation* startingPoint;//开始位置 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //创建一个位置管理器 locationManager = [[CLLocationManager alloc] init];//初始化 locationManager.delegate=self;//委托自己 locationManager.desiredAccuracy=kCLLocationAccuracyBest;//精度设定,有好几种选择(kCLLocationAccuracyNearestTenMeters,kCLLocationAccuracyHundredMeters,kCLLocationAccuracyKilometer,kCLLocationAccuracyThreeKilometers精度逐渐降低) locationManager.distanceFilter=1000.0f;//设置距离筛选器 [locationManager startUpdatingLocation];//开启位置更新 } #pragma mark - CLLocationManagerDelegate Methods /* *确定当前位置和位置更新时调用该方法 */ -(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]; if(startingPoint==nil) startingPoint= newLocation; //newLocation.coordinate.latitude;//经度 //newLocation.coordinate.longitude;//纬度 //newLocation.horizontalAccuracy;//水平精度 //newLocation.altitude;//高度 //newLocation.verticalAccuracy;//垂直精度 CLLocationDistance distance = [newLocation distanceFromLocation:startingPoint];//移动的距离 NSString *distanceString = [[NSString alloc] initWithFormat:@"%gm",distance];//格式化移动距离 NSLog(@"distanceString:%@",distanceString); } /* *位置查询遇到错误时调用这个方法 */ -(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]; }
相关文章推荐
- iOS CoreLocation框架第三章—— CLGeocoder(地理编码器)和CLPlacemark(获取位置信息)
- 获取当前位置(Core Location)
- 获取当前位置(Core Location)
- iPhone获取当前位置(CoreLocation的一些简单使用)
- 使用苹果自带地图获取当前位置及周围信息
- AngularJs 利用百度地图API 定位当前位置 获取地址信息
- 定位功能---封装的一个获取当前位置的经纬度信息的类
- Android 成功 使用GPS获取当前地理位置(解决getLastKnownLocation)
- Android 成功 使用GPS获取当前地理位置(解决getLastKnownLocation 返回 null)
- 实用知识:CoreLocation的使用(位置获取)
- 利用百度地图API获取当前位置信息的实例
- Android 成功 使用GPS获取当前地理位置(解决getLastKnownLocation 返回 null)
- 获取当前的位置信息
- [android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题
- Android获取当前位置,location为空
- iOS项目开发实战——使用CoreLocation获取当前位置信息
- 【微信开发】-发送位置获取周边信息及生成百度静态图, 主要代码在private function receiveLocation($object)
- locationManager获取位置信息
- Android中LocationManager的简单使用,获取当前位置
- 使用百度定位SDK获取当前位置的信息