Получение местоположения в Swift 5 - PullRequest
0 голосов
/ 20 апреля 2019

Я понимаю, что есть много других страниц, которые пытаются решить проблему определения местоположения пользователя с помощью CLLocationManager() в ios swift, но они не работают для меня, поэтому я создал этот вопрос.Мой код ниже которого, я считаю, правильно реализует CLLocationManagerDelegate, но вызов locationManager.startUpdatingLocation() никогда не вызывает функцию locationManager.Это делает Google Map просто открытой для случайной позиции.Я смоделировал некоторые местоположения в схеме, и они прекрасно работают, например, Южная Африка

пример карты Google с имитированным местоположением:

Однако, когда я снимаю отметкусимуляция, местоположение никогда не найдено.Любой совет или помощь будут оценены.Не уверен, что это проблема с моим компьютером или кодом.

import UIKit
import GoogleMaps

class Map: UIViewController, CLLocationManagerDelegate  {

    var mapView: GMSMapView?
    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.mapView = GMSMapView.map(withFrame: CGRect.zero, camera: GMSCameraPosition.camera(withLatitude: 40.7, longitude: -74.0, zoom: 4.0))
        view = mapView

        if (CLLocationManager.locationServicesEnabled()){
            locationManager.delegate = self
            locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
            locationManager.requestWhenInUseAuthorization()
            locationManager.startUpdatingLocation()
        }

    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

        let center = CLLocationCoordinate2D(latitude: locations.last!.coordinate.latitude, longitude: locations.last!.coordinate.longitude)

        let camera = GMSCameraPosition.camera(withLatitude: center.latitude, longitude: center.longitude, zoom: 4.0);
        self.mapView?.camera = camera
        self.mapView?.isMyLocationEnabled = true

        let marker = GMSMarker(position: center)

        print("Latitude :\(center.latitude)")
        print("Longitude :\(center.longitude)")

        marker.map = self.mapView
        marker.title = "Current Location"

        locationManager.stopUpdatingLocation()
    }

}
...