Nhập thư viện Corelocation và MapKit đầu tiên:
import MapKit
import CoreLocation
kế thừa từ CLLocationManagerDelegate cho lớp của chúng tôi
class ViewController: UIViewController, CLLocationManagerDelegate
tạo một biến locationManager, đây sẽ là dữ liệu vị trí của bạn
var locationManager = CLLocationManager()
tạo một hàm để lấy thông tin vị trí, cụ thể cú pháp chính xác này hoạt động:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
trong chức năng của bạn tạo một hằng số cho vị trí hiện tại của người dùng
let userLocation:CLLocation = locations[0] as CLLocation // note that locations is same as the one in the function declaration
dừng cập nhật vị trí, điều này ngăn thiết bị của bạn liên tục thay đổi Cửa sổ để căn giữa vị trí của bạn trong khi di chuyển (bạn có thể bỏ qua phần này nếu bạn muốn nó hoạt động khác)
manager.stopUpdatingLocation()
khiến người dùng phối hợp từ userLocatin bạn vừa xác định:
let coordinations = CLLocationCoordinate2D(latitude: userLocation.coordinate.latitude,longitude: userLocation.coordinate.longitude)
xác định mức độ phóng to mà bạn muốn bản đồ của mình là:
let span = MKCoordinateSpanMake(0.2,0.2)
kết hợp hai để có được khu vực:
let region = MKCoordinateRegion(center: coordinations, span: span)//this basically tells your map where to look and where from what distance
Bây giờ hãy đặt khu vực và chọn xem bạn có muốn nó đi đến đó với hoạt hình hay không
mapView.setRegion(region, animated: true)
đóng chức năng của bạn
}
từ nút của bạn hoặc một cách khác mà bạn muốn đặt locationManagerDel Don thành tự
bây giờ cho phép vị trí được hiển thị
chỉ định độ chính xác
locationManager.desiredAccuracy = kCLLocationAccuracyBest
ủy quyền:
locationManager.requestWhenInUseAuthorization()
để có thể ủy quyền dịch vụ định vị, bạn cần thêm hai dòng này vào danh sách
lấy địa điểm:
locationManager.startUpdatingLocation()
hiển thị cho người dùng:
mapView.showsUserLocation = true
Đây là mã hoàn chỉnh của tôi:
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func locateMe(sender: UIBarButtonItem) {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
mapView.showsUserLocation = true
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let userLocation:CLLocation = locations[0] as CLLocation
manager.stopUpdatingLocation()
let coordinations = CLLocationCoordinate2D(latitude: userLocation.coordinate.latitude,longitude: userLocation.coordinate.longitude)
let span = MKCoordinateSpanMake(0.2,0.2)
let region = MKCoordinateRegion(center: coordinations, span: span)
mapView.setRegion(region, animated: true)
}
}
Import MapKit
+CoreLocation
+ thêmCLLocationManagerDelegate
vào định nghĩa lớp.