码迷,mamicode.com
首页 > 编程语言 > 详细

Swift基础--定位

时间:2014-10-16 19:54:13      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   io   使用   ar   2014   

//
//  ViewController.swift
//  JieCoreLocation
//
//  Created by jiezhang on 14-10-4.
//  Copyright (c) 2014年 jiezhang. All rights reserved.
//

import UIKit
import CoreLocation

class 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()
        
    }


}

bubuko.com,布布扣




Swift基础--定位

标签:des   style   blog   http   color   io   使用   ar   2014   

原文地址:http://blog.csdn.net/jwzhangjie/article/details/40151085

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