İlk olarak Corelocation ve MapKit kitaplığını içe aktarın:
import MapKit
import CoreLocation
CLLocationManagerDelegate'ten sınıfımıza miras alın
class ViewController: UIViewController, CLLocationManagerDelegate
bir locationManager değişkeni oluşturun, bu sizin konum verileriniz olacaktır
var locationManager = CLLocationManager()
Konum bilgisini almak için bir işlev oluşturun, bu söz diziminin tam olarak çalıştığı spesifik olun:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
işlevinizde kullanıcıların mevcut konumu için bir sabit oluşturun
let userLocation:CLLocation = locations[0] as CLLocation
konum güncellemesini durdurun, bu, cihazınızın hareket ederken konumunuzu ortalamak için sürekli olarak Pencereyi değiştirmesini önler (aksi takdirde çalışmasını istiyorsanız bunu atlayabilirsiniz)
manager.stopUpdatingLocation()
Kullanıcıların az önce tanımladığınız userLocatin'den koordinasyonunu alın
let coordinations = CLLocationCoordinate2D(latitude: userLocation.coordinate.latitude,longitude: userLocation.coordinate.longitude)
haritanızın ne kadar yakınlaştırılmış olmasını istediğinizi tanımlayın:
let span = MKCoordinateSpanMake(0.2,0.2)
bölgeyi elde etmek için bu ikisini birleştirin:
let region = MKCoordinateRegion(center: coordinations, span: span)
şimdi bölgeyi ayarlayın ve oraya animasyonla gitmesini isteyip istemediğinizi seçin
mapView.setRegion(region, animated: true)
işlevini kapat
}
düğmenizden veya locationManagerDeleget'i self olarak ayarlamak istediğiniz başka bir yolla
şimdi konumun gösterilmesine izin ver
doğruluğu belirlemek
locationManager.desiredAccuracy = kCLLocationAccuracyBest
yetki vermek:
locationManager.requestWhenInUseAuthorization()
konum hizmetini yetkilendirebilmek için bu iki satırı plistinize eklemeniz gerekir
konum al:
locationManager.startUpdatingLocation()
kullanıcıya göster:
mapView.showsUserLocation = true
Bu benim tam kodum:
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@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
+ eklemeyi unutmayınCLLocationManagerDelegate
.