ОБНОВЛЕНИЕ - Нашли решение, и вот пример проекта, если кто-то ищет такое же решение. Это позволит получить город, страну, почтовый индекс и местный адрес (subLocality) из координат и близлежащих мест.
https://github.com/SwiftGuides/Google_Place_Picker
В моем проекте реализован API выбора мест в Google, так что я могу перемещать его и получать информацию о ближайших местах, а также о точной улице, где находится мой сборщик.
Я хочу, чтобы вместо адреса (37 ° 19'1464 "с.ш. 122 ° 01'74.724" с.ш.) вместо обычного местоположения указателя места был выбран адрес (безымянная дорога, Панчкула, Индия).
В API Google Place Picker API, когда мы нажимаем «выбрать этот адрес» для пользовательского местоположения, оно отображает всплывающее окно и задает местоположение в строковом формате (безымянная дорога, Панчкула, Индия) вместо (37 ° 19'1464 "N 122 ° 01'74.724" W)
Я хочу что-то подобное
Вот изображение текущего статуса
https://ibb.co/HYD5TKP
Пожалуйста, помогите !!
import UIKit
import GooglePlaces
import GooglePlacePicker
import GoogleMaps
class ViewController: UIViewController,GMSPlacePickerViewControllerDelegate {
@IBOutlet weak var addressLabel: UILabel!
@IBOutlet weak var placeNameLabel: UILabel!
@IBOutlet weak var coordinatesLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
// To receive the results from the place picker 'self' will need to conform to
// GMSPlacePickerViewControllerDelegate and implement this code.
func placePicker(_ viewController: GMSPlacePickerViewController, didPick place: GMSPlace) {
// Dismiss the place picker, as it cannot dismiss itself.
viewController.dismiss(animated: true, completion: nil)
print("Place name \(place.name)")
print("PostalCode\(place.addressComponents)")
print("Place address \(place.formattedAddress)")
print("Place attributions \(place.attributions)")
placeNameLabel.text = place.formattedAddress
//Get address Seperated like city,country,postalcode
let arrays : Array = place.addressComponents!
for i in 0..<arrays.count {
let dics : GMSAddressComponent = arrays[i]
let str : String = dics.type
if (str == "country") {
print("Country: \(dics.name)")
}
else if (str == "administrative_area_level_1") {
print("State: \(dics.name)")
}
else if (str == "administrative_area_level_2") {
print("City: \(dics.name)")
}
else if (str == "postal_code"){
print("PostalCode:\(dics.name)")
addressLabel.text = dics.name // this is only to get postalcode of the selected nearby location
}
}
}
func placePickerDidCancel(_ viewController: GMSPlacePickerViewController) {
// Dismiss the place picker, as it cannot dismiss itself.
viewController.dismiss(animated: true, completion: nil)
print("No place selected")
}
@IBAction func pickPlaceButton(_ sender: Any) {
let config = GMSPlacePickerConfig(viewport: nil)
let placePicker = GMSPlacePickerViewController(config: config)
//This delegate has to be called here to proper working of cancle and selected location feature , it is not mentioned in the official documentation
placePicker.delegate = self
present(placePicker, animated: true, completion: nil)
}
}