【问题标题】:Does reverseGeocodeLocation(_ location: CLLocation) method works in offline mode?reverseGeocodeLocation(_ location: CLLocation) 方法是否在离线模式下工作?
【发布时间】:2022-01-18 17:25:09
【问题描述】:

我从方法reverseGeocodeLocation(_ location: CLLocation) 获得了一个位置名称。我的要求是在离线模式下将 Lat-Long 值存储在 DB 中,我还想存储从上述方法获得的这个位置名称字符串。 这是我已经实现的:

geoCoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) in
            
  let place = placemarks?[0]
  var countryName = ""
            
  if let countryString = place?.country {
       countryName = countryString
  }

离线模式下绝对可以得到lat-long;我的问题是,上述方法是否也适用于离线模式

【问题讨论】:

    标签: ios swift cllocationmanager reverse-geocoding cllocation


    【解决方案1】:

    正如the documentation 所说(强调):

    该方法将指定的位置数据异步提交到地理编码服务器并返回。

    由于它是将请求发送到服务器,因此如果离线,您几乎可以肯定无法获得反向地理编码响应。

    但是您可以将坐标添加到某个持久存储中,当您重新联机时应该能够对它们进行反向地理编码。但是,如果您这样做,请记住它们是有速率限制的。正如文档继续说的那样:

    每个应用的地理编码请求都有速率限制,因此在短时间内发出过多请求可能会导致某些请求失败。当超过最大速率时,地理编码器会将值为 CLError.Code.network 的错误对象传递给您的完成处理程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多