Google Maps-reverseGeocodeCoordinate将不会在新加坡打印地址

时间:2019-02-11 02:26:10

标签: ios swift google-maps reverse-geocoding

我正在开发使用Google Map的应用程序,并尝试打印地址。但是,当我在新加坡周围移动地图时,它不起作用。我得到了坐标,但未打印位置。下面是我的代码。已经尝试过

let lines = address.lines

然后打印

self.locationTF.text = lines.joined(separator: "\n")

,但地址仍然没有出现。当我在马来西亚和印度尼西亚(而不是在新加坡)周围移动地图时,我的代码正在工作。有谁知道为什么会这样?

// Implement Geocoding - show street address
func reverseGeocodeCoordinate(_ coordinate: CLLocationCoordinate2D) {
    self.vc.locationTF.unlock()

    let geocoder = GMSGeocoder()
    print("COORDINATE: ", coordinate)
    geocoder.reverseGeocodeCoordinate(coordinate) { response, error in
        guard let address = response?.firstResult(), let sublocality = address.subLocality, let locality = address.locality, let state = address.administrativeArea else {
            return
        }
        self.vc.locationTF.text = sublocality + ", " + locality + ", " + state
        print("LOCATION: ", sublocality + locality + state)
        UIView.animate(withDuration: 0.25) {
            self.vc.view.layoutIfNeeded()
        }
    }
}

1 个答案:

答案 0 :(得分:0)

仅当所有属性的子局部性,局部性和管理区域都不为零时,您的警卫才会让您的代码继续。当您在新加坡使用它时,这些属性之一可能不可用,并且代码会在打印位置之前返回。