首页 > 代码库 > iOS项目开发实战——使用CoreLocation获取当前位置信息

iOS项目开发实战——使用CoreLocation获取当前位置信息

       随着基于位置服务LBS和移动互联网的兴起,你的位置是越来越重要的一个信息。位置服务已经是当前的热门应用如微信。陌陌等社交应用的杀手锏。而在iOS开发中,苹果已经给我们提供了一个位置接口。CoreLocation,我们能够使用该接口方便的获得当前位置的经纬度信息。详细实现例如以下:

(1)新建基于Swift的iOS项目。在ViewController中导入CoreLocation接口:

import CoreLocation

(2)在ViewController类中实现例如以下:

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.
    }


}

(3)因为位置信息是比較隐私的信息,訪问用户位置信息前要征求用户的允许,所以须要在执行前进行提示:在Info.plist中配置内容:

key-value    :  NSLocationUsageDescription     "程序要訪问您的位置信息"

key-value   :   NSLocationAlwaysUsageDescription     "程序要訪问您的位置信息"


(4)执行程序。查看结果:

技术分享


技术分享


       总结一下。对于程序输出结果。和我当前所处城市的位置信息进行比較,发现存在较大误差。我也不清楚这个因为什么原因,眼下我在南方某城,经纬度信息却是在北方,可能是苹果的位置服务有bug吧。

眼下国内基于百度地图API,高德地图等开发的应用也是比較多的,之前我也用百度地图Android SDK开发过应用。接口也是很方便。定位等服务也是比較全面的,很适合开发,个人觉得假设要进行位置服务,还是不要用苹果自带的吧。。。




github主页:https://github.com/chenyufeng1991  。欢迎大家訪问。

iOS项目开发实战——使用CoreLocation获取当前位置信息