[Xcode10 實際操作]九、實用進階-(10)定位裝置的使用
阿新 • • 發佈:2018-12-08
本文將演示定位裝置的使用。
在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】
1 import UIKit 2 //匯入需要用到的定位CoreLocation框架 3 //該框架可以利用三種技術來實現定位: 4 //1.全球衛星定位系統 5 //2.蜂窩基站三角網定位 6 //3.無線網路定位服務 7 //其中,全球衛星定位系統是最精確的。 8 import CoreLocation 9 10 //新增一個地理定位的代理協議CLLocationManagerDelegate 11 class ViewController: UIViewController, CLLocationManagerDelegate {12 13 //新增一個屬性,該屬性是框架提供的一個位置管理類 14 var locationManager:CLLocationManager! 15 override func viewDidLoad() { 16 super.viewDidLoad() 17 // Do any additional setup after loading the view, typically from a nib. 18 19 //為了使用定位功能,需要建立一個位置管理器例項 20 locationManager = CLLocationManager()21 //設定位置管理器的代理物件為當前檢視控制器 22 locationManager.delegate = self 23 //給位置管理物件,設定最佳的精度級別 24 locationManager.desiredAccuracy = kCLLocationAccuracyBest 25 //設定在裝置已經從上一次報告的位置,移動了1000米之後,再呼叫其委託方法 26 locationManager.distanceFilter = 1000.0 27 //開始啟動位置管理器 28 locationManager.startUpdatingLocation()29 } 30 31 //新增一個代理方法,用來響應位置更新的事件。 32 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 33 //獲得定位裝置返回的定位陣列,並獲得陣列中的第一個元素 34 let location:CLLocation = locations[0] 35 //獲得元素中的經度數值 36 let longitude = location.coordinate.longitude 37 //獲得元素中的維度數值 38 let latitude = location.coordinate.latitude 39 //在控制檯列印經度資訊 40 print(longitude) 41 //在控制檯列印維度資訊 42 print(latitude) 43 44 //系統定位服務是比較耗電的,當不使用定位服務時, 45 //需要及時停止定位服務的執行。 46 locationManager.stopUpdatingLocation() 47 } 48 49 override func didReceiveMemoryWarning() { 50 super.didReceiveMemoryWarning() 51 // Dispose of any resources that can be recreated. 52 } 53 }
需要使用真實裝置進行除錯。