【发布时间】:2010-10-05 20:27:57
【问题描述】:
我需要获取给定地址/位置的时区。假设必要时可以将地址/位置反向地理编码(使用 google)到 lat/lng。
这意味着我可能没有邮政编码。
我真的希望谷歌为此提供某种 API,但似乎他们没有。至少你可以在谷歌上搜索“华盛顿特区的时间”并获得时间/TZ——但是我必须筛选出不好玩的内容:(
我知道有可用的数据库将位置映射到时区,但必须维护这些数据库。有没有人想出一个棘手的解决方案来解决这个问题?
谢谢!
【问题讨论】:
我需要获取给定地址/位置的时区。假设必要时可以将地址/位置反向地理编码(使用 google)到 lat/lng。
这意味着我可能没有邮政编码。
我真的希望谷歌为此提供某种 API,但似乎他们没有。至少你可以在谷歌上搜索“华盛顿特区的时间”并获得时间/TZ——但是我必须筛选出不好玩的内容:(
我知道有可用的数据库将位置映射到时区,但必须维护这些数据库。有没有人想出一个棘手的解决方案来解决这个问题?
谢谢!
【问题讨论】:
Google 为此提供了API。
https://maps.googleapis.com/maps/api/timezone/<json or xml>?location=<lat>,<lng>&timestamp=<unix timestamp>&sensor=<true or false>
例如:
【讨论】:
http://www.geonames.org/ 提供了一个 API,它返回给定 lat/lng 的时区
【讨论】:
这个问题需要进一步澄清。你这样做是为了什么?您使用什么语言?但我将如何解决这个问题:首先,创建一个类似结构的表格,将经度转换为区域(很像 table )。接下来,我将在本地或以某种方式在网络上查询 GMT,最后从表中获取偏移量并将其添加到 GMT。这样就没有表格的“维护”,因为这些经度不会改变。
【讨论】:
为此,我编写了一个小型 Java 类,其中嵌入了代码中的数据结构。如果您想避免使用网络服务,并且 22 公里的精度就足够了,并且您乐于假设时区边界不会改变,那么它可能会有所帮助。
https://sites.google.com/a/edval.biz/www/mapping-lat-lng-s-to-timezones
【讨论】: