是否有(免费)网络服务,我可以a)给它一个地址(完整的或城市,州/省和邮政编码),以及b)获得该地址的IANA时区?
用例:我有一个用户管理诊所的表单。每个诊所都有一个地址。我想预先选择该地址的IANA时区,以便可以调整与该诊所关联的预约日期/时间。
我知道Google Maps API和Bing Maps API可以提供地址的经度/经度,还有其他服务可以提供基于经度/经度的IANA TZ。也就是说,这些api需要订阅、键和契约,而且还需要两个请求的方法来获取单个数据。
发布于 2021-03-13 00:51:02
地址地理定位是一个难题。它需要对地址系统有深刻的理解,并对不断变化的、现实世界的、混乱的场景做出反应。
例如,您可以获取美国的邮政编码及其大致位置的数据库,但它只是一个快照。随着时间的推移,您会发现新的邮政编码会在您的数据中添加和丢失,并且现有的邮政编码已经扩展到包括其他区域。你还会发现许多邮政编码是“不可定位的”,比如那些用于向海外军方发送邮件的邮政编码。您甚至可以找到地址位于两个不同时区的单个邮政编码。
将国际关注付诸实施,你会发现各种各样的边缘案例。每个国家和地区都有自己的特殊规则和情况。
这是一个值得付钱给服务提供商的问题。尝试以离线方式进行地理定位可能是可能的,但不建议这样做。
第二部分-找出哪个时区去一个地点,也很混乱。然而,它稍微更容易协调。Time Zone Boundary Builder是尝试这样做的主要开源项目。大多数库referenced here都使用这些数据。但即便如此,它也会进行更新,并依赖于开放街道地图数据建立的边界。其中一些边界存在争议,因此谷歌、微软或其他公司的服务可能会给出不同的结果,因为它们的地图数据具有不同的边界。如果您关心这些事情,那么您可能希望针对不同的提供者测试一些边缘用例,看看您是否对结果满意。您可能会发现TZBB数据运行良好,或者您可能更喜欢在线解决方案之一。
https://stackoverflow.com/questions/66569881
复制相似问题