Перший імпорт бібліотеки Corelocation та MapKit:
import MapKit
import CoreLocation
успадкуйте від CLLocationManagerDelegate до нашого класу
class ViewController: UIViewController, CLLocationManagerDelegate
створіть змінну locationManager, це будуть ваші дані про місцезнаходження
var locationManager = CLLocationManager()
створіть функцію для отримання інформації про місцезнаходження, будьте конкретні, цей точний синтаксис працює:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
у своїй функції створіть постійну для користувачів поточну локацію
let userLocation:CLLocation = locations[0] as CLLocation // note that locations is same as the one in the function declaration
зупиніть оновлення місцезнаходження, це не дозволяє вашому пристрою постійно змінювати вікно, щоб централізувати ваше місцезнаходження під час переміщення (ви можете опустити це, якщо ви хочете, щоб воно функціонувало інакше)
manager.stopUpdatingLocation()
отримати координати користувачів від користувачаLocatin, який ви тільки що визначили:
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)//this basically tells your map where to look and where from what distance
тепер встановіть регіон і виберіть, хочете ви, щоб він ходив туди з анімацією чи ні
mapView.setRegion(region, animated: true)
закрийте свою функцію
}
за допомогою вашої кнопки чи іншим способом ви хочете встановити розташуванняManagerDeleget для самозабезпечення
тепер дозвольте відображати місцеположення
позначити точність
locationManager.desiredAccuracy = kCLLocationAccuracyBest
авторизувати:
locationManager.requestWhenInUseAuthorization()
щоб мати змогу авторизувати службу локації, вам потрібно додати ці два рядки до вашого списку
отримати місцезнаходження:
locationManager.startUpdatingLocation()
показати це користувачеві:
mapView.showsUserLocation = true
Це мій повний код:
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
у визначенні класу.