你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> CoreLocation---iOS中的位置信息

CoreLocation---iOS中的位置信息

編輯:IOS開發綜合

在iOS系統中, 使用CoreLocation可以獲取到用戶當前位置, 以及設備移動信息.

基本步驟:

import CoreLocation, ViewController 繼承 CLLocationManagerDelegate 協議, 實現CLLocationManager的didUpdateLocations, didUpdateToLocation等方法, 開始定位: 調用CLLocationManager的startUpdatingLocation方法. 設備自身的定位要開啟.

ViewController

import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

    @IBOutlet weak var latitudeLabel: UILabel!
    @IBOutlet weak var longitudeLabel: UILabel!

    let locationManager: CLLocationManager = CLLocationManager()

    var currentLocation: CLLocation!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.distanceFilter = kCLLocationAccuracyKilometer
    }

    override func viewWillAppear(animated: Bool) {
        locationManager.startUpdatingLocation()
        println("start location")
    }

    override func viewWillDisappear(animated: Bool) {
        locationManager.stopUpdatingLocation()
        println("stop location")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
        println("didUpdateLocations")
        currentLocation = locations.last as! CLLocation
        latitudeLabel.text = "\(currentLocation.coordinate.latitude)"
        longitudeLabel.text = "\(currentLocation.coordinate.longitude)"
    }

    func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) {
        println("didUpdateToLocation")
    }

    func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
        println("didFailWithError")
    }
}

模擬器定位設置

使用iPhone simulator時, 最初只看到打印”start location”, 即沒有成功調用didUpdateLocations.
原因在於simulator默認將定位關閉, 需要我們自己打開.
1. 打開定位調試選項, 這裡, 我們可以選擇Apple:
打開模擬器定位的調試選項

2. 設置simulator中的Settings->Privacy->Location中的定位選項, 設為always: 3. 回到APP界面, 即可看到位置信息: 設置定位選項為always 看到位置信息 4. 我們也可以自己選取模擬位置, 如選擇Hong Kong: 5. 可以看到, 對應模擬位置的經緯度信息:<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvdGQ+DQoJPC90cj4NCgk8dHI+DQoJPHRkPi08L3RkPg0KCTx0ZD4tPC90ZD4NCgk8L3RyPg0KCTx0cj4NCgk8dGQ+PGltZyBhbHQ9"選取模擬位置" src="/uploadfile/Collfiles/20150424/2015042408255634.png" title="\" /> Hong Kong的位置信息

6. 我們也可以自行輸入經緯度值來設置位置:
自行輸入經緯度值

CoreLocation的基本使用就是以上這些了, 更加復雜的以後再補充了.

  1. 上一頁:
  2. 下一頁:
Copyright © Ios教程網 All Rights Reserved