Google 地图 - reverseGeocodeCoordinate 不会打印新加坡的地址

Google Maps - reverseGeocodeCoordinate won't print address in Singapore

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

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()
        }
    }
}

只有当所有属性 sublocality、locality 和 administrativeArea 都不为 nil 时,您的守卫才会让您的代码继续。当您在新加坡使用它时,这些属性之一可能不可用,并且您的代码在打印位置之前 returns。