无法从 CLGeocoder() 保存经度和纬度
Cannot save the longitute and latitude from CLGeocoder()
我想使用地址作为字符串来检索经度和纬度。我发现这里非常有用 post:
但是当我想将结果保存在双字段中时 return 我不能。我所做的是
func getLatitude(address:String) -> Double{
var lati = 0.0
var geocoder = CLGeocoder()
geocoder.geocodeAddressString("your address") {
placemarks, error in
let placemark = placemarks?.first
if let lat = placemark?.location?.coordinate.latitude{
lati = lat
}
}
}
return lati
}
在 geocoder.geocodeAddressString 块内填充了值,但是当我尝试 return 时,它总是给我 0.0,我已经尝试了所有方法。有什么想法吗?
如果它尝试打印内部代码块内的值,它会被打印出来,但我永远无法 return 它。
提前感谢您的回答。
CLLocationCoordinate2D
是定义为 CLLocationDegrees
的纬度和经度结构,它本身是 Double
.
的类型别名
var latitude: Double?
var longitude: Double?
func getLocation(address: String) {
let geocoder = CLGeocoder()
geocoder.geocodeAddressString(address) { placemarks, error in
guard let placemark = placemarks?.first else { return }
let coordinate = placemark.location?.coordinate
latitude = coordinate?.latitude
longitude = coordinate?.longitude
}
}
我想使用地址作为字符串来检索经度和纬度。我发现这里非常有用 post:
但是当我想将结果保存在双字段中时 return 我不能。我所做的是
func getLatitude(address:String) -> Double{
var lati = 0.0
var geocoder = CLGeocoder()
geocoder.geocodeAddressString("your address") {
placemarks, error in
let placemark = placemarks?.first
if let lat = placemark?.location?.coordinate.latitude{
lati = lat
}
}
}
return lati
}
在 geocoder.geocodeAddressString 块内填充了值,但是当我尝试 return 时,它总是给我 0.0,我已经尝试了所有方法。有什么想法吗?
如果它尝试打印内部代码块内的值,它会被打印出来,但我永远无法 return 它。
提前感谢您的回答。
CLLocationCoordinate2D
是定义为 CLLocationDegrees
的纬度和经度结构,它本身是 Double
.
var latitude: Double?
var longitude: Double?
func getLocation(address: String) {
let geocoder = CLGeocoder()
geocoder.geocodeAddressString(address) { placemarks, error in
guard let placemark = placemarks?.first else { return }
let coordinate = placemark.location?.coordinate
latitude = coordinate?.latitude
longitude = coordinate?.longitude
}
}