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

Posted yfceshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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获取当前位置信息的主要内容,如果未能解决你的问题,请参考以下文章

使用 ios7 CoreLocation 创建 Google Maps 链接

iOS 利用CoreLocation和MapKit开发搜索附近的商场功能

IOS-CoreLocation

ios开发系统地图知识

CoreLocation 不适用于 iOS 8 上的 Adhoc 分发

iOS CoreLocation 在后台