Могу ли я узнать долготу и широту пользователя по их адресу в Swift? - PullRequest
1 голос
/ 03 мая 2020

Как видно из названия, я пытаюсь определить местоположение пользователя по его адресу, когда он вводит данные в приложение, однако я не нашел способа сделать это. Буду очень признателен, если кто-нибудь сможет мне помочь. Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 мая 2020

Вот функция, которую вы можете использовать, чтобы получить местоположение с адреса

func getLocation(from address: String, completion: @escaping (_ location: CLLocationCoordinate2D?)-> Void) {
    let geocoder = CLGeocoder()
    geocoder.geocodeAddressString(address) { (placemarks, error) in
        guard let placemarks = placemarks,
        let location = placemarks.first?.location?.coordinate else {
            completion(nil)
            return
        }
        completion(location)
    }
}

Так скажем, если у меня есть этот адрес:

let address = "1 Infinite Loop, Cupertino, CA 95014"

Использование

getLocation(from: address) { location in
    print("Location is", location.debugDescription)
    // Location is Optional(__C.CLLocationCoordinate2D(latitude: 39.799372, longitude: -89.644458))

   print(location.latitude) // result 39.799372
   print(location.longitude) // result -89.644458


}
1 голос
/ 03 мая 2020

Мы можем получить coordinate из приведенного ниже кода,

import UIKit
import CoreLocation


class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        getCoordinatesFromPlace(place: "1 Infinite Loop, Cupertino, CA 95014")
    }

    func getCoordinatesFromPlace(place: String){

        let geoCoder = CLGeocoder()
        geoCoder.geocodeAddressString(place) { (placemarks, error) in
            guard
                let placemarks = placemarks,
                let location = placemarks.first?.location?.coordinate
            else {
                // handle no location found
                return
            }
            print(location.latitude)
            print(location.longitude)

        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...