码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-08-12 11:37:23      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:ios   corelocation   swift   位置服务   

       随着基于位置服务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开发过应用,接口也是非常方便,定位等服务也是比较全面的,非常适合开发,个人认为如果要进行位置服务,还是不要用苹果自带的吧。。。


版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:ios   corelocation   swift   位置服务   

原文地址:http://blog.csdn.net/chenyufeng1991/article/details/47440477

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!