Я успешно сделал приложение, которое показывает мигающую голубую точку, где пользователь в настоящее время. Однако по состоянию на данный момент центр экрана не следует за синей точкой, когда пользователь перемещается, поэтому, если пользователь перемещает синюю точку, она просто выходит из экрана, и пользователю придется прокручивать ее, чтобы не отставать от нее. Это не удобно! У меня есть следующий код:Центр обновления экрана с текущим местоположением
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
@IBOutlet weak var map: MKMapView!
let locationManager = CLLocationManager()
var mapp = MKMapView.self
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if (CLLocationManager.locationServicesEnabled())
{
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestWhenInUseAuthorization()
self.locationManager.startUpdatingLocation()
self.map.showsUserLocation = true
}
else
{
print("Location services are not enabled")
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations.last
let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.002, longitudeDelta: 0.002))
self.map.setRegion(region, animated: true)
self.locationManager.stopUpdatingLocation()
}
}
Мои только мысли, что я мог бы избавиться от раздела «stopUpdatingLocation() и, возможно, тогда он будет постоянно обновлять регион с новым центром для каждого нового места, однако я не знаю, не имеет ли stopUpdatingLocation плохая практика? Спасибо за все советы!
Для этого вам не нужен код. Вы можете просто установить свойство 'userTrackingMode' в MapView, и представление карты сделает это за вас. – Paulw11
Wow thats очень удобно. Есть ли ссылка где-нибудь, у которой есть вся информация о методах GPS? – skyleguy
Существует тонна документации на http://developer.apple.com – Paulw11