【问题标题】:Is there a way to get timezone for specific GPS coordinates in Swift iOS8有没有办法在 Swift iOS8 中获取特定 GPS 坐标的时区
【发布时间】:2015-03-24 21:01:36
【问题描述】:

如果我到世界某个特定地区旅行,iOS 会自动更新时区。我很好奇它是否使用 GPS 坐标来这样做,如果是这样的话,Swift 中是否有任何工具可以从一组特定的 GPS 坐标中找出时区?

我知道 NSTimeZone 并且它的所有功能似乎都不能满足我的需求。我正在计算世界上任何指定位置的太阳升起和落下时间。 IE。 用户当前可能不在的位置。但是,日期以 UTC 格式返回,因此我需要能够将这些日期转换为相应的时区。

这个项目的主要限制是我不能使用在线 API,例如 GeoCities 或 Google。

我考虑过使用离线数据库,我只是想看看 Swift 是否有我可以先使用的功能。

【问题讨论】:

  • 有趣的解决方案,但是我明白你的意思,它确实需要网络服务:/ .
  • 对不起,我删除了that link,因为在查看了您的问题后,它显然不符合您的需求。当不是当前位置时,用户如何指定他们的位置?他们是否可以从[NSTimeZone knownTimeZoneNames] 的列表中挑选(或他们可以通过该层次结构导航的一些 UI)?或者将这些位置转换成地图,让他们点击最近的位置?
  • @Rob,有两种方法可以获取他们的位置。通过位置服务或可供选择的城市列表。如果从列表中选择了一个城市,我们会将其转换为本地数据库中的坐标。出于可用性的考虑,我们努力将其保持为一键式(选择城市)解决方案。
  • 是的,那么也许将您的城市列表映射到knownTimeZones 列表可能会做到这一点,对吧?
  • 还有原始gps坐标。我们选择使用时区数据库,因为 swift 中似乎不存在该工具。不过,感谢您花时间和精力分析您的见解。

标签: swift ios8 gps nstimezone


【解决方案1】:

好的,经过大量搜索,我找到了一个可以接受的解决方案。 Alterplay 有一个objective-c 库,可以根据gps 坐标计算时区,而无需使用在线服务。任何好奇的人都可以在这里找到该库:https://github.com/Alterplay/APTimeZones

【讨论】:

  • 确保查看该项目的问题。有几个错误结果的报告。可能还有其他人尚未报告。
  • 仔细观察,他们的方法在设计上非常不准确。会有很多正确的答案,但也会有很多错误的答案。这是一种糟糕的方法,容易产生糟糕的结果。
  • @TomHarrington 是的,经过一些测试,我们发现了相同的结果。此时,我们将在未找到连接时将其视为后备选项。他们还实现了地理编码器功能,可以在有互联网连接的地方使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
相关资源
最近更新 更多