2016-12-07 8 views
0

У меня есть простой код, представляющий карту с несколькими разными местоположениями, которые изменяются в зависимости от щелчка строки в таблице. Карта отображается как ожидаемая, но когда я пытаюсь изменить тип, скажем, на спутник, карта просто исчезает, но логотип Google по-прежнему существует, поэтому маркеры, которые я установил на карте. Я не могу понять, что здесь пропало. Вот какой код.Изменение типа карты GoogleMaps

@IBOutlet var myMapView: UIView! 
var mapView: GMSMapView? 
var currentLocation: CLLocationCoordinate2D? 
let locationManager = CLLocationManager() 
var marker = GMSMarker() 

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

    kreirajMapu() - creates the map 
} 

func kreirajMapu() { 
    currentLocation = magacin[red].artikal[redZaMapu].lokacija 

    let camera = GMSCameraPosition.camera(withLatitude: (currentLocation?.latitude)!, longitude: (currentLocation?.longitude)!, zoom: 15) 
    mapView = GMSMapView.map(withFrame: myMapView.bounds, camera: camera) 
    mapView?.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
    mapView?.isMyLocationEnabled = true 
    mapView?.settings.compassButton = true 
    mapView?.settings.myLocationButton = true 
    mapView?.settings.setAllGesturesEnabled(true) 
    myMapView.addSubview(mapView!) 
} 

func moveCamera() { 

    CATransaction.begin() 
    CATransaction.setValue(2, forKey: kCATransactionAnimationDuration) 

    mapView?.animate(to: GMSCameraPosition.camera(withTarget: magacin[red].artikal[redZaMapu].lokacija, zoom: magacin[red].artikal[redZaMapu].zoom)) 
    mapView?.animate(toViewingAngle: 45) 

    CATransaction.commit() 
    marker = GMSMarker(position: magacin[red].artikal[redZaMapu].lokacija) 
    marker.title = magacin[red].artikal[redZaMapu].naziv 
    marker.appearAnimation = kGMSMarkerAnimationPop 
    marker.snippet = "This is where \(magacin[red].artikal[redZaMapu].naziv)'s live" 
    marker.map = mapView 
} 

@IBAction func mapType(_ sender: AnyObject) { 
    let actionSheet = UIAlertController(title: "Map Types", message: "Select map type:", preferredStyle: .actionSheet) 

    actionSheet.addAction(UIAlertAction(title: "Normal", style: .default, handler: {_ in 
     self.mapView?.mapType = kGMSTypeNormal 
    })) 

    actionSheet.addAction(UIAlertAction(title: "Hybrid", style: .default, handler: {_ in 
     self.mapView?.mapType = kGMSTypeHybrid 
    })) 

    actionSheet.addAction(UIAlertAction(title: "Satellite", style: .default, handler: {_ in 
     self.mapView?.mapType = kGMSTypeSatellite 
    })) 

    actionSheet.addAction(UIAlertAction(title: "Terrain", style: .default, handler: {_ in 
     self.mapView?.mapType = kGMSTypeTerrain 
    })) 

    actionSheet.addAction(UIAlertAction(title: "Cancel", style: .cancel)) 
    present(actionSheet, animated: true, completion: nil) 
} 

ответ

0

Ответ на мой вопрос был, обязательно включите GoogleMap API на google.developer для приложения вы пытаетесь использовать его. Спасибо за вклад каждого участника:/