In Swift:
//peça autorização para o usuário para ter acesso a localização, no exemplo abaixo
//é criado um delegate para o mapa assim é possível mostrar a localização do
//usuário no mapa e também monitorar a velocidade caso ele esteja se deslocando.
//crie uma variável do tipo CLLocationManager.
lazy var locationManager = CLLocationManager()
extension MapViewController : CLLocationManagerDelegate {
//Pedindo autorização do usuário
func locationManager(_ manager: CLLocationManager, didChangeAuthorization
status: CLAuthorizationStatus) {
switch status {
case .authorizedAlways,.authorizedWhenInUse:
mapView.showsUserLocation = true
mapView.addSubview(btUserLocation)
locationManager.startUpdatingLocation() //<- Quando usuário permitir usar localização , chamamos o método startUpdatingLocation ele vai atualizando a localização do usuário
default:
break
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
monitorarVelocidade(location)
}
//esta função monitora a velocidade
func monitorarVelocidade(didUpdateLocations locations: [CLLocation]){
if let location = locations.last {
print("Velocidade:", location.speed)
let region = MKCoordinateRegion(center:location.coordinate,latitudinalMeters: 500,longitudinalMeters: 500)
mapView.setRegion(region, animated: true)
}
}
}
Application with Pleto with all these features:
https://github.com/wesleysfavarin/QueroConhecer