您的位置:首页 > 移动开发 > Swift

Swift-定位

2015-12-30 10:07 645 查看
[objc] view
plaincopyprint?





//  

//  ViewController.swift  

//  JieCoreLocation  

//  

//  Created by jiezhang on 14-10-4.  

//  Copyright (c) 2014年 jiezhang. All rights reserved.  

//  

  

import UIKit  

import CoreLocation  

  

class ViewController:
4000
 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()  

          

    }  

  

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Swift 定位