Я работаю над приложением, которое использует карты Google для отображения набора контактов, и я хочу, чтобы камера карты начиналась с местоположения пользователя. Я попытался написать следующий код (в Swift 2.0), но он не помещает меня в текущее местоположение устройства, вместо этого он показывает мне пустой синий экран (который я нашел как точную середину карты). Вот скриншот того, что у меня естьiOS Google Maps SDK Не показывать местоположение пользователя
Я использовал следующие библиотеки при написании этого кода:
Google Maps SDK
OneShotLocationManager
Вот код, который у меня есть (в ViewController.swift)
import UIKit
import GoogleMaps
class ViewController: UIViewController, GMSMapViewDelegate {
var manager: OneShotLocationManager?
var userlat: Double = 0.0
var userlng: Double = 0.0
override func viewDidLoad() {
manager = OneShotLocationManager()
manager!.fetchWithCompletion {location, error in
// fetch location or an error
if let loc = location {
print(loc)
self.userlat = loc.coordinate.latitude
} else if let err = error {
print(err.localizedDescription)
}
self.manager = nil
}
super.viewDidLoad()
let camera = GMSCameraPosition.cameraWithLatitude(userlat,
longitude: userlng, zoom: 6)
let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
mapView.myLocationEnabled = true
mapView.delegate = self
self.view = mapView
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView
}
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
let infoWindow = NSBundle.mainBundle().loadNibNamed("CustomInfoWindow", owner: self, options: nil).first! as! CustomInfoWindow
infoWindow.label.text = "\(marker.position.latitude) \(marker.position.longitude)"
return infoWindow
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
И вот консольный вывод после запуска приложения. Обратите внимание, что он выводит текущее местоположение пользователя:
< + 51.50998000, -0.13370000> +/- 5.00m (скорость -1.00 mps/course -1.00) @ 2/3/16, 8:47:57 AM Pacific Стандартное время 2016-02-03 08: 47: 57.545 Hanky Ranky [3379: 260848] Google Maps SDK для версии iOS: 1.11.21919.0
Спасибо за помощь, ребята!