0

是否有(免费)网络服务,我可以a)给它一个地址(完整或城市,州/省和邮政编码),b)获取该地址的 IANA 时区?

用例:我有一个用户管理诊所的表单。每个诊所都有一个地址。我想预先选择该地址的 IANA 时区,以便我可以调整与该诊所相关的预约日期/时间。

我知道 Google Maps API 和 Bing Maps API 可以为我提供地址的纬度/经度,还有其他服务可以根据纬度/经度为我提供 IANA TZ。也就是说,这些 api 需要订阅、密钥和合同,并且还需要两种请求方法来获取单个数据。

4

1 回答 1

0

地址地理位置是一个难题。它需要对地址系统有深入的了解,并对不断变化的、真实的、混乱的场景做出反应。

例如,您可以获得美国邮政编码及其大致位置的数据库,但它只是一个快照。随着时间的推移,您会发​​现您的数据中会添加和丢失新的邮政编码,并且现有的邮政编码已经扩展到包括其他区域。您还会发现许多“不可定位”的邮政编码,例如用于向海外军队发送邮件的邮政编码。您甚至可以找到一个邮政编码,其地址位于两个不同的时区。

将国际问题付诸实施,您会发现各种极端情况。每个国家和地区都有自己的特殊规则和情况。

这是一个值得为服务提供商付费的问题。尝试以离线方式进行地理定位可能是可能的,但不建议这样做。

第二部分 - 弄清楚哪个时区去一个位置,也很混乱。但是协调起来稍微容易一些。Time Zone Boundary Builder是尝试这样做的主要开源项目。此处引用的大多数库都使用该数据。但即便如此,它也有更新并依赖于 Open Street Map 数据建立的边界。其中一些边界存在争议,因此谷歌、微软或其他公司的服务可能会给出不同的结果,因为它们的地图数据具有不同的边界。如果您关心这些事情,那么您可能希望针对不同的提供者测试一些边缘案例,看看您是否对结果感到满意。您可能会发现 TZBB 数据运行良好,或者您可能更喜欢其中一种在线解决方案。

于 2021-03-12T16:51:02.307 回答