![]() |
1
13
考虑到时区是基于政治实体而不是简单的物理lat/lon计算,我将创建一个数据结构,将lat/lon坐标上的多边形映射到政治实体(国家和省/州),然后有一个单独的结构,将政治实体和当前日期映射到时区偏移。 这样,您不仅可以避免冗余,而且还可以:
但是,由于某些边框的形状非常不规则,您需要一个相当大的数据结构来保证准确性,具体取决于输入和/或显示的分辨率。 |
![]() |
2
5
有许多web服务可以为您做到这一点(例如 GeoNames 有一个 great API )中。但是如果你没有互联网连接,那你就不能直接在java me的标准库中找到。 但是,您可以做一些接近的事情:存储每个时区对应的城市坐标,然后 Voronoi tessellation 这样你就有了离每个城市最近的区域。然后,当用户单击某个特定的地理区域时,只需将该点映射到镶嵌图的右侧部分,然后就可以看到最近的城市,进而确定正确的时区。 更复杂的方法是可能的,但它们也需要更大的内存结构,如果您运行的是Java ME,我假设这是一个约束这是空间和速度之间的一个很好的折衷。 |
![]() |
3
3
乔尔·尼利的回答很好,但要知道这是一个非常棘手的问题,因为政治原因。因此,对于克什米尔或西藏这样有争议的地区,你的决定可能会冒犯到人们。 此外,如果您想使用时区信息计算时间更改,则会变得更加棘手,因为有关是否使用夏令时以及更改日期的决定只需提前两周通知即可更改。见: http://www.timeanddate.com/news/time/argentina-dst-2009-2010.html 多边形信息可以在 http://www.worldtimeserver.com/time_zone_guide/ 如果你感兴趣的话免责声明-我还没有买这个信息,所以不知道它有多好。 |
![]() |
4
3
好吧,如果精度不是一个要求,为什么还要为数据结构操心呢?写一个函数,给定经度,返回格林尼治子午线的偏移量,用小时表示。 如果这对你不起作用,我会同意乔尔·尼利的回答。 |
![]() |
mikro098 · 如何解析ISO8061到无时区的日期 6 年前 |
![]() |
Alexander Staroselsky · 替换时区 6 年前 |
![]() |
Luiz · 在PostgreSQL中使用时区正确处理时间 6 年前 |
![]() |
Thomas · 在C中使用夏令时处理时区# 6 年前 |
![]() |
Yasitha · 我正在尝试使用GMT值获取时区名称 6 年前 |