摘要:
在使用GoogleMaps框架中的GMSMapView
对象(从此处https://cocoapods.org/pods/GoogleMaps每个Pod安装)时,将自定义地图样式应用于GMSMapView
时遇到一个奇怪的问题-城市和国家/地区标签正在消失-当我不为地图使用任何自定义样式时,这不会发生。 (无论设置或不设置stlye属性都无关紧要,它总是在我身上发生)
复制步骤:
我在一个只有一个ViewController的单视图应用程序中重现了我的问题,其中地图在Storyboard中受约束并链接到我的ViewController.swift。该应用程序如下所示:
AppDelegate:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let myGoogleMapsAPIKey: String = "[here goes my API-Key]"
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GMSServices.provideAPIKey(self.myGoogleMapsAPIKey)
return true
}
func applicationWillResignActive(_ application: UIApplication) {}
func applicationDidEnterBackground(_ application: UIApplication) {}
func applicationWillEnterForeground(_ application: UIApplication) {}
func applicationDidBecomeActive(_ application: UIApplication) {}
func applicationWillTerminate(_ application: UIApplication) {}
}
ViewController.swift :
class ViewController: UIViewController {
// mapView is linked from storyboard
@IBOutlet weak var mapView: GMSMapView!
override func viewDidLoad() {
super.viewDidLoad()
self.applyStyleToMap(self.mapView)
}
func applyStyleToMap(_ map: GMSMapView) {
do {
if let styleURL = Bundle.main.url(forResource: "mapStyle", withExtension: "json") {
map.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
} else {
NSLog("Unable to find mapStyle.json")
}
} catch {
NSLog("Map style failed to load")
}
}
}
mapStyle.json:
[
{
"featureType": "administrative.locality",
"elementType": "all",
"stylers": [
{
"visibility": "on"
}
]
}
]
问题:
在特定的缩放阶段使用捏手势进行GMSMapView
进出缩放时,所有标签都将从地图上以自定义样式消失。然后,地图如下所示:(如前所述,如果未应用任何样式,则不会发生)
有人遇到过这个问题吗,可以指出正确的方向吗?我是否错过了某件事,或者这是Google-Maps-iOS-SDK中的错误?
如果您需要更多信息,请告诉我,我将提供您所需的一切。
最好的问候。