标签:ios corelocation swift 位置服务
随着基于位置服务LBS和移动互联网的兴起,你的位置是越来越重要的一个信息,位置服务已经是当前的热门应用如微信,陌陌等社交应用的杀手锏。而在iOS开发中,苹果已经给我们提供了一个位置接口,CoreLocation,我们可以使用该接口方便的获得当前位置的经纬度信息。具体实现如下:
(1)新建基于Swift的iOS项目,在ViewController中导入CoreLocation接口:
import CoreLocation
import UIKit import CoreLocation class ViewController: UIViewController,CLLocationManagerDelegate { let locationManager:CLLocationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBest if ios8(){ locationManager.requestAlwaysAuthorization() } locationManager.startUpdatingLocation() } func ios8()->Bool{ return UIDevice.currentDevice().systemVersion == "8.0" } func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){ var location:CLLocation = locations[locations.count-1] as! CLLocation if(location.horizontalAccuracy > 0){ println("纬度=\(location.coordinate.latitude) ;经度=\(location.coordinate.longitude)") locationManager.stopUpdatingLocation() } } func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!){ println(error) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
key-value : NSLocationUsageDescription "程序要访问您的位置信息"
key-value : NSLocationAlwaysUsageDescription "程序要访问您的位置信息"
(4)运行程序,查看结果:
。
。
总结一下,对于程序输出结果,和我当前所处城市的位置信息进行比较,发现存在较大误差,我也不清楚这个由于什么原因,目前我在南方某城,经纬度信息却是在北方,可能是苹果的位置服务有bug吧。目前国内基于百度地图API,高德地图等开发的应用也是比较多的,之前我也用百度地图Android SDK开发过应用,接口也是非常方便,定位等服务也是比较全面的,非常适合开发,个人认为如果要进行位置服务,还是不要用苹果自带的吧。。。
版权声明:本文为博主原创文章,未经博主允许不得转载。
iOS项目开发实战——使用CoreLocation获取当前位置信息
标签:ios corelocation swift 位置服务
原文地址:http://blog.csdn.net/chenyufeng1991/article/details/47440477