Выполнить geocodeAddressString дважды (Расчет расстояния между двумя CLLocations) - Swift 4 - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь вычислить расстояние между двумя адресами. Это не должно быть проблемой, но у меня проблемы с преобразованием адреса в CLLocations. При первом вызове geocodeAddressString все работает, но на самом деле он не вызывается во второй раз. Я установил точку останова, ничего не произошло. Есть ли у вас какие-либо идеи? Спасибо.

lazy var geocoder = CLGeocoder()
var plz1 = "45345"
var plz2 = "22927"

weak var Ort1: CLLocation?
weak var Ort2: CLLocation?

    func calcDistance(){
        let address1 = "\("Germany"), \(plz1)"
        let address2 = "\("Germany"), \(plz2)"

        getLocation(address: address1)
        getLocation(address: address2)

        //print(Ort1?.distance(from: Ort2!))
    }

    func getLocation(address: String) {
        geocoder.geocodeAddressString(address, completionHandler: {(placemarks, error) -> Void in
            if((error) != nil){
                print("Error", error ?? "")
            }
            if (placemarks?.first) != nil {
                var location: CLLocation?
                location = placemarks?.first?.location
                self.Ort1 = location
                let coordinate = location?.coordinate
                print(coordinate!.latitude)
                print(coordinate!.longitude)
                self.geocoder.cancelGeocode()
            }
        })
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...