Мне нужно показать мое реальное текущее местоположение.Я использовал эти два руководства в качестве ссылок: Google Maps SDK iOS и Рэй Вендерлих .
Ни то, ни другое не помогло показать мне мое реальное текущее местоположение, оно показывает местоположение Apple.
Я добавил Privacy - Location When In Use Usage Description
и LSApplicationQueriesSchemes
в свой файл info.plist
.
Что не так с моим кодом?
Как я могу добавить маркер с моим текущим местоположением?
Мой код:
AppDelegate.swift
import GoogleMaps
import GooglePlaces
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
GMSServices.provideAPIKey("AIzaSyCNcYUEURD7DSk6qksdKyp63w-ZetdWQZc")
GMSPlacesClient.provideAPIKey("AIzaSyCNcYUEURD7DSk6qksdKyp63w-ZetdWQZc")
return true
}
ViewController.swift
import UIKit
import GoogleMaps
import GooglePlaces
class ViewController: UIViewController {
@IBOutlet weak var mapView: GMSMapView!
private var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
}
}
extension ViewController: CLLocationManagerDelegate {
// 2
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
// 3
guard status == .authorizedWhenInUse else {
return
}
// 4
locationManager.startUpdatingLocation()
//5
mapView.isMyLocationEnabled = true
mapView.settings.myLocationButton = true
}
// 6
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let location = locations.first else {
return
}
// 7
mapView.camera = GMSCameraPosition(target: location.coordinate, zoom: 15, bearing: 0, viewingAngle: 0)
// 8
locationManager.stopUpdatingLocation()
}
}