如何获取 Google 在 swift 中放置标记经纬度

How to get Google places marker latitude and longitude in swift

我试图从 didTapAt 获取标记位置,但我没有获取地点 ID 稍后我必须获取地点照片和地点详细信息。 有没有办法从 google 标记中获取确切的地点 ID?

func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
    print("You tapped at \(coordinate.latitude), \(coordinate.longitude)")
    mapView.camera = GMSCameraPosition.camera(withLatitude: coordinate.latitude, longitude: coordinate.longitude, zoom: 15)
}

var placesClient: GMSPlacesClient!
let fields: GMSPlaceField = GMSPlaceField(rawValue:UInt(GMSPlaceField.name.rawValue) |
        UInt(GMSPlaceField.placeID.rawValue) |
        UInt(GMSPlaceField.coordinate.rawValue) |
        GMSPlaceField.addressComponents.rawValue |
        GMSPlaceField.rating.rawValue |
        GMSPlaceField.photos.rawValue |
        GMSPlaceField.all.rawValue |
        GMSPlaceField.formattedAddress.rawValue)!

    placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: {
        (place: GMSPlace?, error: Error?) in
        if let error = error {
            print("An error occurred: \(error.localizedDescription)")
            self.stopActivityIndicator()
            return
        }
})

GMSMapViewDelegate 下有一个函数可以侦听兴趣点位置上的点击。功能 func mapView(_ mapView: GMSMapView, didTapPOIWithPlaceID placeID: String, name: String, location: CLLocationCoordinate2D) returns 位置信息以及地点标识符。

请参阅 Google 地图 iOS SDK 文档中的以下 example