【问题标题】:How to style Google Maps in SwiftUI with JSON如何使用 JSON 在 SwiftUI 中为 Google 地图设置样式
【发布时间】:2020-06-15 18:45:51
【问题描述】:

我是 XCode 11 和 SwiftUI 的新手,并且一直在学习一个教程(著名的遗言):https://developers.google.com/maps/documentation/ios-sdk/styling,尝试使用 Google Maps SDK 创建一个自定义的 Google Maps 界面。我的应用程序中已经有一个基本的地图视图,但我正在尝试使用 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()

    }

}

【问题讨论】:

    标签: ios swift xcode swiftui google-maps-sdk-ios


    【解决方案1】:

    我认为你是否使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2021-12-12
      • 1970-01-01
      相关资源
      最近更新 更多