Я создал сборщик следующим образом:
let placePicker = GSMPlacePickerViewController(config: config)
placePicker.delegate?.placePicker(viewController: GSMPlacePickerViewController, didPick: GSMPlace)
Во второй строке приведенного выше кода, как я могу сохранить место, выбранное пользователем, внутри моей собственной переменной, чтобы позже я мог получить доступ к ее характеристики, как координаты?
Я не понимаю, как реализовать метод GSMPlacePickerViewController
, и не могу найти примеры в Интернете.
Как и в случае с GSMPlacePickerViewController
документы, он говорит, что мне не нужно реализовывать первый параметр, и я мог бы оставить его пустым, если бы правильно понял.
Implementations of this method should dismiss the view controller as the view controller will not dismiss itself.
Итак, моя проблема теперь заключается в том, чтобы сохранить выбранное пользователем местоположение в моей собственной переменной.
Как мне достичь этого?
Добавьте GMSPlacePickerViewControllerDelegate в ваш контроллер представления следующим образом:
class YourViewController: GMSPlacePickerViewControllerDelegate {
}
Затем добавьте метод делегата в указанный VC, который будет вызываться, когда пользователь выберет место. Затем вы закрываете и получаете доступ к данным о месте, как показано ниже:
func placePicker(_ viewController: GMSPlacePickerViewController, didPick place: GMSPlace) {
placePicker.dismiss(animated: true, completion: nil)
let location = CLLocation(latitude: place.coordinate.latitude, longitude: place.coordinate.longitude)
}