Я пытаюсь вычислить расстояние между двумя адресами. Это не должно быть проблемой, но у меня проблемы с преобразованием адреса в 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()
}
})
}