Je travaille sur une application iPhone qui utilise l'API Google Maps et je rencontre des problèmes pour obtenir l'emplacement actuel de l'utilisateur, de sorte que la carte s'ouvre sur son emplacement.Problèmes d'obtention de l'emplacement de l'utilisateur à partir de CLLocationManager (API Google Maps)
J'ai passé quelques jours dessus maintenant et je me suis débarrassé des erreurs du compilateur, mais cela ne fonctionne toujours pas correctement. La carte apparaît, mais seulement aux coordonnées initiales que je fournis pour les variables long et lat. Je pense que cela a quelque chose à voir avec le CLLoationManager()
.
Mise à jour de l'emplacement sur le simulateur ne donne aucun résultat, et je me sens comme si je fais une erreur de débutant, je ne sais pas quoi. Et des suggestions?
import UIKit
import CoreLocation
import GoogleMaps
class ViewController: UIViewController, CLLocationManagerDelegate {
var long:Double = -0.13
var lat:Double = 51.0
let locationManager = CLLocationManager()
override func loadView() {
// Create a GMSCameraPosition that tells the map to display the
//user location stuff
self.locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
let camera = GMSCameraPosition.camera(withLatitude: CLLocationDegrees(lat), longitude: CLLocationDegrees(long), zoom: 5.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
view = mapView
mapView.showUserLocation = true
// Creates a marker in the center of the map.
let marker = GMSMarker()
marker.position = CLLocationCoordinate2D(latitude: 51.51 , longitude: -0.13)
marker.title = "Test"
marker.snippet = "This is a test"
marker.map = mapView
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { //i think this is the problem area
let userLocation = locations.last!
long = userLocation.coordinate.longitude
lat = userLocation.coordinate.latitude
self.locationManager.stopUpdatingLocation()
}
}