在 UIView 中正确显示 google 地图
displaying google map within a UIView Correctly
我正在使用 google 地图和 iOS。
这是我的代码:
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
}
在 Interface Builder 中,我有一个带有 class GMSMapView 的 UIView。当我将地图附加到 UIViewController 时,我得到了经纬度坐标。当我尝试将地图附加到 UIView 时,我得到了不同的地图、缩放级别等,
如下图所示。
如何让 UIView 地图正确描绘?
p.s。我尝试了 viewDidLoad 和 viewDidAppear,结果相同。
谢谢
您已经在为 GMSMapView
创建 IBOutlet
它将为您创建一个地图实例。因此无需再创建一个 GMSMapView
实例并将其分配给 class 变量。
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
}
我正在使用 google 地图和 iOS。
这是我的代码:
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
}
在 Interface Builder 中,我有一个带有 class GMSMapView 的 UIView。当我将地图附加到 UIViewController 时,我得到了经纬度坐标。当我尝试将地图附加到 UIView 时,我得到了不同的地图、缩放级别等, 如下图所示。
如何让 UIView 地图正确描绘? p.s。我尝试了 viewDidLoad 和 viewDidAppear,结果相同。 谢谢
您已经在为 GMSMapView
IBOutlet
它将为您创建一个地图实例。因此无需再创建一个 GMSMapView
实例并将其分配给 class 变量。
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
}