2016-05-24 10 views
1

Mein Ziel ist es, die Kamera den aktuellen Standort eines Benutzers zu bewegen, aber für irgendwie zeigt es die allgemeine Karte, habe ich viele Dinge ausprobiert, aber es scheint, als würde es nicht bewegen aktuellen Standort des BenutzersKann den aktuellen Standort (GPS) auf Google Maps nicht finden ios sdk

Screenshot

enter image description here

aktuelle Code

import UIKit 
import GoogleMaps 


class ParcelViewController: UIViewController, GMSMapViewDelegate { 


    @IBOutlet var mapView: GMSMapView! 

    let locationManager = CLLocationManager() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     locationManager.delegate = self 
     locationManager.requestWhenInUseAuthorization() 
     mapView.delegate = self 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

} 


// Mark: -CLLocationManagerDelegate 
extension ParcelViewController: CLLocationManagerDelegate { 

    func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) { 
     if status == .AuthorizedWhenInUse { 
      locationManager.startUpdatingLocation() 

      mapView.myLocationEnabled = 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) 

      locationManager.stopUpdatingLocation() 

     } 
    } 
} 
+0

Sie erhalten zunächst die Erlaubnis Alarm –

+0

Wie würde ich das tun? – airsoftFreak

+0

ok Versuch einmal in Gerät –

Antwort

3

Haben Sie in Ihrer Datei .plistNSLocationAlwaysUsageDescription oder (in Ihrem Fall ist dies die Datei) hinzugefügt? Wenn die Warnmeldung, die nach der Autorisierung fragt, nicht angezeigt wird, könnte dies das Problem sein.

+0

Dies ist die perfekte Antwort! – airsoftFreak

0

Vergewissern Sie sich, importiert und registriert richtig Ihr GoogleMapsAPI Key: Dies ist in der AppDelegate getan

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    GMSServices.provideAPIKey("[your key from Google API]") 

    return true 
} 

Danach einige, wo in einer Last fucntion innerhalb einer Viewcontroller-Datei:

let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)  
let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.1, longitudeDelta: 0.1)) 
self.map.setRegion(region, animated: true) 

einfach eine Anmerkung: Google Maps API einen Benutzer nicht benötigt Authentifizierung, um die Karte zu verwenden, jedoch CLLLocationManager. Auf einer Last sollten Sie prüfen, ob die Berechtigung gesetzt ist oder nicht, und von dort aus weitermachen.

+0

Wenn die Karten dargestellt werden, das heißt die API korrekt ist – airsoftFreak

+0

Das Problem ist, wenn es darum geht, den aktuellen Standort meines Geräts abrufen – airsoftFreak

+0

Probieren Sie die drei Codezeilen mit dem LocationManager aus. Wenn nichts passiert, dann müssen Sie tun, was Chajmz vorgeschlagen hat. Nachdem Sie die Autorisierung haben, wird das obige funktionieren. –

Verwandte Themen