swift GoogleMap对GMSMapViewType的使用不明确

webghufk  于 2023-02-11  发布在  Swift
关注(0)|答案(6)|浏览(163)

我刚刚升级到Xcode 7.1。当我尝试设置GMSMapView的mapType时,我收到错误“kGMSTypeNormal”的使用不明确、“kGMSTypeTerrain”的使用不明确和“kGMSTypeHybrid”的使用不明确。

@IBOutlet weak var mapView: GMSMapView!

func myfunc() {
      if let myMapType = NSUserDefaults.standardUserDefaults().stringForKey(SettingsTableViewController.History.MapType) {
            switch myMapType {
            case "kGMSTypeNormal":
                mapView.mapType = kGMSTypeNormal
            case "kGMSTypeTerrain":
                mapView.mapType = kGMSTypeTerrain
            case "kGMSTypeHybrid":
                mapView.mapType = kGMSTypeHybrid
            default: break
                mapView.mapType = kGMSTypeNormal
            }
        } else {
            mapView.mapType = kGMSTypeNormal
        }
}
zdwk9cvp

zdwk9cvp1#

我不知道为什么,但把“GoogleMaps.”放在所有kGMSTypes前面(即GoogleMaps.kGMSTypeNormal)解决了这个问题。

zvokhttg

zvokhttg2#

mapView.mapType = GMSMapViewType(rawValue: 1)!
  • kGM类型正常= 1
  • kGM卫星类型= 2
  • kGM地形类型= 3
  • kGM混合型= 4
  • kGM类型无= 5
e7arh2l6

e7arh2l63#

这是最新版本

import UIKit      
import GoogleMaps

class ViewController: UIViewController, GMSMapViewDelegate {
    var mapView: GMSMapView!

    override func viewDidLoad() {
        super.viewDidLoad()
        mapView = GMSMapView(frame: self.view.bounds)
        mapView.animate(toViewingAngle: 45)
        mapView.mapType = GMSMapViewType.satellite
        self.view = mapView

    }
nzkunb0c

nzkunb0c4#

Swift 3中,使用如下:
.normal .hybrid .satellite .terrain

0tdrvxhp

0tdrvxhp5#

如果你打开GMSMapViewType,你会看到它被定义为枚举。在你的switch语句中,你把它和字符串比较是错误的。你应该更好地把它们和整数比较。

kGMSTypeNormal = 1
kGMSTypeSatellite = 2
kGMSTypeTerrain = 3
kGMSTypeHybrid = 4
kGMSTypeNone = 5
g52tjvyc

g52tjvyc6#

你需要像这样使用
mapView.mapType = GoogleMaps.kGMSTypeSatellite

相关问题