zoukankan      html  css  js  c++  java
  • 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  。欢迎大家訪问。

  • 相关阅读:
    转:客制FORM调用会计科目弹性域/根据科目取得CODE_COMBINATION_ID
    设计模式——“signleton”
    javascript部分知识点
    Java多线程初学者指南(9):为什么要进行数据同步
    tomcat报错org.springframework.web.context.ContextLoaderListener找不到
    ibatis知识点
    毕业快一年
    (转)Spring AOP的底层实现技术
    JavaWeb项目中引入spring框架
    Spring的核心机制依赖注入
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6788999.html
Copyright © 2011-2022 走看看