如何使用 JSON 在 SwiftUI 中设置 Google 地图的样式
How to style Google Maps in SwiftUI with JSON
我是 XCode 11 和 SwiftUI 的新手,一直在学习教程(著名的遗言):https://developers.google.com/maps/documentation/ios-sdk/styling,尝试创建自定义 Google 使用 Google Maps SDK 的地图界面。我的应用程序中已经有一个基本的地图视图,但我正在尝试使用 JSON 文件来设置地图样式(具体来说,我正在尝试突出显示本地道路)。我的问题是 Google 文档提供的解决方案不适用于 SwiftUI,因为它使用 ViewController。我应该如何使用 JSON 文件来设置 SwiftUI 中地图的样式?正如我所说,我是 Swift 的新手,所以如果可能的话,我将非常感谢初学者的回答。我在 ContentView.swift 中调用的地图视图代码如下所示(不确定是否相关):
import SwiftUI
import GoogleMaps
struct GoogleMapsView: UIViewRepresentable {
private let zoom: Float = 15.0
func makeUIView(context: Self.Context) -> GMSMapView {
let camera = GMSCameraPosition.camera(withLatitude: 33.3969, longitude: -84.5963, zoom: 13.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
return mapView
}
func updateUIView(_ mapView: GMSMapView, context: Context) {
}
}
struct GoogleMapsView_Previews: PreviewProvider {
static var previews: some View {
GoogleMapsView()
}
}
我认为您是否使用 SwiftUI 并不重要。
重要的部分是:
if let styleURL = Bundle.main.url(forResource: "style", withExtension: "json") {
mapView.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
把它加在这之间:
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
->
return mapView
我是 XCode 11 和 SwiftUI 的新手,一直在学习教程(著名的遗言):https://developers.google.com/maps/documentation/ios-sdk/styling,尝试创建自定义 Google 使用 Google Maps SDK 的地图界面。我的应用程序中已经有一个基本的地图视图,但我正在尝试使用 JSON 文件来设置地图样式(具体来说,我正在尝试突出显示本地道路)。我的问题是 Google 文档提供的解决方案不适用于 SwiftUI,因为它使用 ViewController。我应该如何使用 JSON 文件来设置 SwiftUI 中地图的样式?正如我所说,我是 Swift 的新手,所以如果可能的话,我将非常感谢初学者的回答。我在 ContentView.swift 中调用的地图视图代码如下所示(不确定是否相关):
import SwiftUI
import GoogleMaps
struct GoogleMapsView: UIViewRepresentable {
private let zoom: Float = 15.0
func makeUIView(context: Self.Context) -> GMSMapView {
let camera = GMSCameraPosition.camera(withLatitude: 33.3969, longitude: -84.5963, zoom: 13.0)
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
return mapView
}
func updateUIView(_ mapView: GMSMapView, context: Context) {
}
}
struct GoogleMapsView_Previews: PreviewProvider {
static var previews: some View {
GoogleMapsView()
}
}
我认为您是否使用 SwiftUI 并不重要。 重要的部分是:
if let styleURL = Bundle.main.url(forResource: "style", withExtension: "json") {
mapView.mapStyle = try GMSMapStyle(contentsOfFileURL: styleURL)
把它加在这之间:
let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
->
return mapView