2016-11-24 17 views
0

Im пытается получить текущее местоположение пользователей для отображения с API-интерфейсом google. Я боролся с этой проблемой в течение нескольких недель, и код запускается, но не обновляется до текущего местоположения, когда я меняю местоположение в симуляторе.myLocationEnabled change to isMyLocationEnabled on swift при использовании GoogleMaps

Мой код ниже и после просмотра того, как это делают другие люди, у всех их есть mapView.myLocationEnabled = true, тогда как для меня возникает ошибка: «myLocationEnabled был переименован в« isMylocationEnabled ». Я видел некоторые современные сообщения (от 2 месяцев назад), и каждый использует myLocationEnabled без ошибки, кажется, почему я получаю это? может ли это быть причиной того, что мое текущее местоположение не обновляется?

import UIKit 
import GoogleMaps 

class FirstViewController: UIViewController, CLLocationManagerDelegate { 


    @IBOutlet weak var mapView: GMSMapView! 


    let locationManager = CLLocationManager() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     locationManager.delegate = self 
     mapView.settings.myLocationButton = true 
     mapView.settings.compassButton = true 
    } 
    override func viewDidAppear(_ animated: Bool) { 
     locationManager.requestWhenInUseAuthorization() 
    } 
    func locationManager(manager: CLLocationManager , didChangeAuthorizationStatus status: CLAuthorizationStatus) { 
     if status == .authorizedWhenInUse { 
      locationManager.startUpdatingLocation() 


      mapView.isMyLocationEnabled = true 

      mapView.settings.myLocationButton = true 
     } 
    } 
    func locationManager(manager: CLLocationManager ,didUpdateLocations locations: [CLLocation]) { 
     if let location = locations.first { 

      mapView.camera = GMSCameraPosition(target: location.coordinate, zoom: 15, bearing: 0, viewingAngle: 0) 

      let marker = GMSMarker() 
      marker.title = "Current Location" 
      marker.map = mapView 
      locationManager.stopUpdatingLocation() 
     } 
    } 
} 
+0

ли у создал проект в консоли разработчика Google? И, кстати, вы должны либо обновить ур старый пост http://stackoverflow.com/questions/40318101/current-location-update-on-google-maps-sdk-for-xcode-not-working или удалить его вместо создания новый с той же проблемой. Этот https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial также может быть полезен. – LoVo

+0

Эй, да, у меня есть. У меня есть свой ключ API в моем делегате, и GoogleMaps показывает, просто не показывает текущее местоположение. Хорошо, извините, я удалю старый пост. На самом деле это был учебник, который я начинал сначала, но нет никаких признаков того, что у него такая же проблема. Я также пробовал этот учебник https://www.appcoda.com/google-maps-api-tutorial/ и другие, которые я нашел в Интернете. Кстати, проблема «isMyLocationEnabled» - это проблема BOOL. Это может быть проблема с Framework? так как я загрузил SDK GoogleMaps вручную, возможно, пропустил что-то? –

ответ

0

ТАК Я НАКОНЧИВШИЙ ЭТО! В основном я обновил свой существующий подфайл с помощью GoogleMaps и GooglePlaces, а затем обновил пакет, чтобы обеспечить работу всех фреймворков. Тогда я использовал этот код, чтобы получить мое текущее местоположение, чтобы работать

import UIKit 

    import GoogleMaps 


    class FirstViewController: UIViewController, CLLocationManagerDelegate { 


@IBOutlet weak var mapView: GMSMapView! 
var locationManager = CLLocationManager() 
var vwGMap = GMSMapView() 


override func viewDidLoad() { 
    super.viewDidLoad() 
    let camera: GMSCameraPosition = GMSCameraPosition.camera(withLatitude: 22.300000, longitude: 70.783300, zoom: 10.0) 
    vwGMap = GMSMapView.map(withFrame: self.view.frame, camera: camera) 
    vwGMap.camera = camera 

    locationManager.delegate = self 
    locationManager.desiredAccuracy = kCLLocationAccuracyKilometer 
    locationManager.distanceFilter = 500 
    locationManager.requestWhenInUseAuthorization() 
    locationManager.requestAlwaysAuthorization() 
    locationManager.startUpdatingLocation() 

    self.view = vwGMap 
    } 

func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 

     if (status == CLAuthorizationStatus.authorizedWhenInUse) 

     { 
      vwGMap.isMyLocationEnabled = true 
     } 
    } 
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     let newLocation = locations.last 
     vwGMap.camera = GMSCameraPosition.camera(withTarget: newLocation!.coordinate, zoom: 15.0) 
     vwGMap.settings.myLocationButton = true 
     self.view = self.vwGMap 
    let marker = GMSMarker() 
    marker.position = CLLocationCoordinate2DMake(newLocation!.coordinate.latitude, newLocation!.coordinate.longitude) 
    marker.map = self.vwGMap 
    } 

}