Swift基础--定位

来源:互联网 发布:中国进出口统计数据库 编辑:程序博客网 时间:2024/05/17 20:51
////  ViewController.swift//  JieCoreLocation////  Created by jiezhang on 14-10-4.//  Copyright (c) 2014年 jiezhang. All rights reserved.//import UIKitimport CoreLocationclass ViewController: UIViewController, CLLocationManagerDelegate{    required init(coder aDecoder: NSCoder) {        super.init(coder: aDecoder)    }        @IBOutlet weak var longitudeTxt: UITextField!    @IBOutlet weak var latitudeTxt: UITextField!    @IBOutlet weak var HeightTxt: UITextField!    @IBOutlet weak var addressTxt: UILabel!    var currLocation : CLLocation!        //地址反编译出错误,不清楚什么问题,我是在模拟器上模拟的    @IBAction func reverseGeocode(sender: AnyObject) {        var geocoder = CLGeocoder()        var p:CLPlacemark?        geocoder.reverseGeocodeLocation(currLocation, completionHandler: { (placemarks, error) -> Void in            if error != nil {                println("reverse geodcode fail: \(error.localizedDescription)")                return            }            let pm = placemarks as [CLPlacemark]            if (pm.count > 0){                p = placemarks[0] as? CLPlacemark                println(p)            }else{                println("No Placemarks!")            }        })    }    //用于定位服务管理类,它能够给我们提供位置信息和高度信息,也可以监控设备进入或离开某个区域,还可以获得设备的运行方向    let locationManager : CLLocationManager = CLLocationManager()        override func viewDidLoad() {        super.viewDidLoad()        locationManager.delegate = self        //设备使用电池供电时最高的精度        locationManager.desiredAccuracy = kCLLocationAccuracyBest        //精确到1000米,距离过滤器,定义了设备移动后获得位置信息的最小距离        locationManager.distanceFilter = kCLLocationAccuracyKilometer            }        override func viewWillAppear(animated: Bool) {        locationManager.startUpdatingLocation()        println("定位开始")    }        override func viewWillDisappear(animated: Bool) {        locationManager.stopUpdatingLocation()        println("定位结束")    }        func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){        currLocation = locations.last as CLLocation        longitudeTxt.text = "\(currLocation.coordinate.longitude)"        latitudeTxt.text = "\(currLocation.coordinate.latitude)"        HeightTxt.text = "\(currLocation.altitude)"    }        func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!){        println(error)    }    override func didReceiveMemoryWarning() {        super.didReceiveMemoryWarning()            }}





0 0