2017-06-30 5 views
0

Ich verwende google maps mit iOS.google map in einem UIView anzeigen Korrekt

dies ist mein Code:

import UIKit 
import GoogleMaps 

ViewController: UIViewController { 

@IBOutlet weak var myMapView: GMSMapView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 


override func viewDidAppear(_ animated: Bool) { 
    // Create a GMSCameraPosition that tells the map to display the 
    // coordinate -33.86,151.20 at zoom level 6. 
    let camera = GMSCameraPosition.camera(withLatitude: +31.75097946, longitude: +35.23694368, zoom: 17.0) 
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) 
    //mapView.isMyLocationEnabled = true 
    mapView.mapType = .terrain 



    self.view = mapView 
    //self.myMapView = mapView 



    // Creates a marker in the center of the map. 
    let marker = GMSMarker() 
    marker.position = CLLocationCoordinate2D(latitude: +31.75097946, longitude: +35.23694368) 
    marker.title = "Eden VidanPeled" 

    //marker.snippet = "Australia" 
    marker.map = mapView 
    marker.opacity = 1.0 
    } 

Im Interface Builder ich eine UIView mit der Klasse GMSMapView haben. Wenn ich meine Karte an den UIViewController anschließe, bekomme ich meine lat-langen Koordinaten. Wenn ich versuche, die Karte mit der UIView zu verbinden, bekomme ich eine andere Karte, Zoomstufe usw., , wie Sie auf dem Foto unten sehen können.

the maps

Wie erhalte ich die UIView Karte korrekt darzustellen? p.s. Ich habe beide ViewDidLoad und ViewDidAppear mit den gleichen Ergebnissen versucht. Dank

+0

fügen Sie mapview in Ihre Ansicht wie addsubview Funktion hinzu –

Antwort

1

Sie bereits erstellen ein IBOutlet für GMSMapView

Es wird für Sie eine Karte Instanz erstellen. Es ist also nicht notwendig, eine weitere Instanz von GMSMapView zu erstellen und sie der Klassenvariablen zuzuweisen.

override func viewDidAppear(_ animated: Bool) { 
    // Create a GMSCameraPosition that tells the map to display the 
    // coordinate -33.86,151.20 at zoom level 6. 

    let camera = GMSCameraPosition.camera(withLatitude: +31.75097946, longitude: +35.23694368, zoom: 17.0) 

    self.myMapView.mapType = .terrain 

    self.myMapView.camera = camera 


    // Creates a marker in the center of the map. 
    let marker = GMSMarker() 
    marker.position = CLLocationCoordinate2D(latitude: +31.75097946, longitude: +35.23694368) 
    marker.title = "Eden VidanPeled" 

    //marker.snippet = "Australia" 
    marker.map = self.myMapView 
    marker.opacity = 1.0 
}