Impor Corelocation dan MapKit library pertama:
import MapKit
import CoreLocation
mewarisi dari CLLocationManagerDelegate ke kelas kami
class ViewController: UIViewController, CLLocationManagerDelegate
buat variabel locationManager, ini akan menjadi data lokasi Anda
var locationManager = CLLocationManager()
buat fungsi untuk mendapatkan info lokasi, spesifik sintaks yang tepat ini berfungsi:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
di fungsi Anda buat konstanta untuk lokasi pengguna saat ini
let userLocation:CLLocation = locations[0] as CLLocation // note that locations is same as the one in the function declaration
berhenti memperbarui lokasi, ini mencegah perangkat Anda terus-menerus mengubah Jendela untuk memusatkan lokasi Anda saat bergerak (Anda dapat menghilangkan ini jika Anda ingin berfungsi sebaliknya)
manager.stopUpdatingLocation()
dapatkan pengguna mengoordinasi dari userLocatin yang baru saja Anda tetapkan:
let coordinations = CLLocationCoordinate2D(latitude: userLocation.coordinate.latitude,longitude: userLocation.coordinate.longitude)
tentukan seberapa besar tampilannya yang Anda inginkan dari peta Anda:
let span = MKCoordinateSpanMake(0.2,0.2)
gabungkan keduanya untuk mendapatkan wilayah:
let region = MKCoordinateRegion(center: coordinations, span: span)//this basically tells your map where to look and where from what distance
sekarang atur wilayah dan pilih apakah Anda ingin pergi ke sana dengan animasi atau tidak
mapView.setRegion(region, animated: true)
tutup fungsi Anda
}
dari tombol Anda atau cara lain Anda ingin mengatur locationManagerDeleget menjadi mandiri
sekarang izinkan lokasi ditampilkan
menunjuk keakuratan
locationManager.desiredAccuracy = kCLLocationAccuracyBest
mengizinkan:
locationManager.requestWhenInUseAuthorization()
untuk dapat mengotorisasi layanan lokasi Anda perlu menambahkan dua baris ini ke daftar Anda
dapatkan lokasi:
locationManager.startUpdatingLocation()
perlihatkan kepada pengguna:
mapView.showsUserLocation = true
Ini adalah kode lengkap saya:
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
+CLLocationManagerDelegate
dalam definisi kelas.