2010-10-05 73 views
3

我需要获取给定地址/位置的时区。假设地址/位置可以反向地理编码(使用谷歌)到必要的纬度/经度。将位置映射到时区

这意味着我可能没有邮政编码。

我真的希望谷歌为此提供了某种API,但似乎他们没有。至少你可以谷歌搜索“时间在华盛顿,直流”,并获得时间/ TZ - 但后来我不得不屏幕刮哪些是不好玩的:(

我知道有数据库可用地图位置到时区,但不得不保持。有没有人想出了一个棘手的解决这个问题?

谢谢!需要说明的有点多

+0

..谁是“他们?” – 2010-10-05 20:32:27

回答

2

http://www.geonames.org/规定,返回给定的时区API纬度/经度

+1

geonames不是免费的,样本使用的'demo'帐户仅限于每天3000个请求。我刚才正在使用它作为开发目的,并且它停止工作。 – 2012-11-12 04:20:56

0

的问题。你是什么这样做的目的是什么?你使用什么语言?但是,我将如何处理这个问题是:首先,创建一个像结构一样的表格,将经度转换为区域(非常类似于table)。接下来,我会在本地查询GMT,或者以某种方式在网络上,最后从表中获得偏移量并将其添加到GMT。这种方式没有“维护”表格,因为这些经度不会改变。

0

我写了一个小的Java类来做到这一点,与嵌入代码的数据结构。如果您想避免使用Web服务,并且22公里的准确度足够好,并且您很乐意假定时区边界不会改变,那么它可能会有所帮助。

https://sites.google.com/a/edval.biz/www/mapping-lat-lng-s-to-timezones

+0

更准确的版本是61484行代码。代码的性能如何? – ProgrAmmar 2014-09-02 06:32:30

+1

表现快。这只是对经纬度的二元搜索。 (对任何编译语言都是快速的,但在PHP中会很慢)。 – 2014-09-03 07:20:57