Как получить Google размещает маркер широты и долготы в Swift - PullRequest
2 голосов
/ 10 апреля 2020

Я пытался получить местоположение маркера из didTapAt, но не получил идентификатор места. Позже мне нужно получить фотографии и информацию о месте. Есть ли способ получить точный идентификатор места из маркеров Google?

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
        }
})

enter image description here

1 Ответ

1 голос
/ 10 апреля 2020

В GMSMapViewDelegate есть функция, которая прослушивает касания в точках интереса. Функция func mapView(_ mapView: GMSMapView, didTapPOIWithPlaceID placeID: String, name: String, location: CLLocationCoordinate2D) возвращает информацию о местоположении, а также идентификатор места.

См. Следующий пример из документации Google Maps iOS SDK.

...