从 reverseGeocodeLocation 仅返回英文地址

Posted

技术标签:

【中文标题】从 reverseGeocodeLocation 仅返回英文地址【英文标题】:Returning address only in English from reverseGeocodeLocation 【发布时间】:2015-11-16 19:53:58 【问题描述】:

我的应用程序是基于地理位置的应用程序,tableview 中的每个条目都有条目的位置。我发现奇怪的是,当用户来自美国以外的地方时,位置是用他们的语言写的。例如,有一位来自越南的用户,地址是用越南语写的。 我正在使用如下所示的 reverseGeocodeLocation 来检索条目位置的地址。有没有办法只用英语获得结果?我在其他***问题中尝试了代码,但没有奏效。

我首先使用 Parse 获取地理点。我不需要这样做,但我只是决定这样做。

 PFGeoPoint.geoPointForCurrentLocationInBackground 
                (geoPoint: PFGeoPoint?, error: NSError?) -> Void in
    var location = CLLocation(latitude: GlobalVariable.userLocation!.latitude, longitude: GlobalVariable.userLocation!.longitude)

 CLGeocoder().reverseGeocodeLocation(location, completionHandler: (placemarks, error) -> Void in
    if error != nil 
    print("Reverse geocoder failed with error" + error!.localizedDescription, terminator: "")
                            return
 if placemarks!.count > 0 
 let pm = placemarks![0] as CLPlacemark
GlobalVariable.detailedLocation =  "\(pm.subLocality)," + " \(pm.locality)," + " \(pm.ISOcountryCode)" 

【问题讨论】:

How to force language in which reverse geocoding data on ios is received?的可能重复 知道了。谢谢。所以我想我需要使用 Google API 来做到这一点。 【参考方案1】:

您可以将参数“preferredLocale”传递给特定语言

let locale = Locale(identifier: "en_US")
CLGeocoder().reverseGeocodeLocation(location, preferredLocale: locale, completionHandler: (placemarks, error) in

)

【讨论】:

以上是关于从 reverseGeocodeLocation 仅返回英文地址的主要内容,如果未能解决你的问题,请参考以下文章

使用 reverseGeocodeLocation: 设置地址字符串并从方法返回

无法从 CLGeocoder reverseGeocodeLocation 返回字符串

reverseGeocodeLocation 存储为 NSString 产生错误

reverseGeocodeLocation(_ location: CLLocation) 方法是不是在离线模式下工作?

使用 reverseGeocodeLocation 将用户的状态作为 NSString 返回

如何本地化来自 reverseGeocodeLocation 的地址结果?