我在 mapView 中添加多个标记时遇到问题

i'm having a trouble adding multiple markers in a mapView

我在 mapView 中添加多个标记时遇到问题,但我总是以显示一个标记结束,这是最后调用的标记,我不知道为什么。 这样做的目的是获取包含纬度和经度的数据并添加那些我试图静态做的标记,但我能够显示多个标记

我创建了一个添加新标记的函数,我在 viewDidLoad 中调用它 ` 覆盖 func viewDidLoad() { super.viewDidLoad()

        AddMarker(title: "pala", snippet: "nanana", latitude: 35.741522, longitude: 9.805937)


        AddMarker(title: "pala", snippet: "nanana", latitude: 36.89939467218524, longitude: 10.187976658321267)



    }
    private func AddMarker(title:String , snippet:String  , latitude:Double , longitude:Double){
        var title = title
        var snippet = snippet
        var latitude = latitude
        var longitude = longitude

        let camera = GMSCameraPosition.camera(withLatitude: latitude, longitude: longitude, zoom: 6.0)
        let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
        view = mapView

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
        marker.title = title
        marker.snippet = snippet
        marker.map = mapView
    }

`

在 addMarker 方法之外创建一个 GMSMapView 实例作为实例 属性。并在 addMarker 方法中更改其相机位置并添加标记。

let mapView = GMSMapView()

private func addMarker(title:String, snippet:String , latitude:Double , longitude:Double){
    let camera = GMSCameraPosition.camera(withLatitude: latitude, longitude: longitude, zoom: 6.0)
    self.mapView.animate(to: camera)

    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
    marker.title = title
    marker.snippet = snippet
    marker.map = mapView
}

当一个一个地添加多个标记时,不要将相机位置设置为最后一个标记位置的动画。要在地图视图中显示所有标记,您可以使用 GMSCoordinateBounds

let mapView = GMSMapView()
var bounds = GMSCoordinateBounds()

override func viewDidLoad() {
    super.viewDidLoad()
    addMarker(title: "pala", snippet: "nanana", latitude: 35.741522, longitude: 9.805937)
    addMarker(title: "pala", snippet: "nanana", latitude: 36.89939467218524, longitude: 10.187976658321267)
}
private func addMarker(title:String, snippet:String , latitude:Double , longitude:Double){
    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
    marker.title = title
    marker.snippet = snippet
    marker.map = mapView

    bounds = bounds.includingCoordinate(marker.position)
    let update = GMSCameraUpdate.fit(bounds, withPadding: 50)
    mapView.animate(with: update)
}