Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java中的时区获取纬度和经度_Java_Android_Geolocation_Timezone_Location - Fatal编程技术网

从Java中的时区获取纬度和经度

从Java中的时区获取纬度和经度,java,android,geolocation,timezone,location,Java,Android,Geolocation,Timezone,Location,我正在尝试编写一个世界时钟应用程序,返回给定时区的日出和日落信息。这种想法是,用户要么指定GMT偏移量,要么明确给出时区。然后应用程序将使用找到的java.util.TimeZone(或者可能给定GMT偏移量)查找纬度和经度。我意识到时区通常不是获取地理位置信息的非常准确的方式,因为它们主要基于政治边界,但似乎存在类似的情况。我找到的大多数站点/API都会给出纬度和经度的时区,但我想进行反向搜索(返回给定时区的纬度和经度)。提前感谢你的帮助 时区是一个区域,因此您必须返回该区域边界的坐标(并且可

我正在尝试编写一个世界时钟应用程序,返回给定时区的日出和日落信息。这种想法是,用户要么指定GMT偏移量,要么明确给出时区。然后应用程序将使用找到的java.util.TimeZone(或者可能给定GMT偏移量)查找纬度和经度。我意识到时区通常不是获取地理位置信息的非常准确的方式,因为它们主要基于政治边界,但似乎存在类似的情况。我找到的大多数站点/API都会给出纬度和经度的时区,但我想进行反向搜索(返回给定时区的纬度和经度)。提前感谢你的帮助

时区是一个区域,因此您必须返回该区域边界的坐标(并且可能添加一些方法来检查给定点是否在其内部)。所以你必须从地理数据开始。请记住,许多国家都有夏令时,因此时区不是恒定的。

时区是一个区域,因此您必须返回该区域边界的坐标(并可能添加一些方法来检查给定点是否在该区域内)。所以你必须从地理数据开始。请记住,许多国家都有夏季时间,因此时区不是固定不变的。

有一个可下载的城镇数据库,其中包括各种信息,包括时区和人口。您可以使用它填充一个数据库,该数据库从时区映射到该时区中最大城市的位置

请注意,GMT偏移量在这方面非常无用,但幸运的是,时区ID的大陆/城市术语让用户很容易选择正确的时区。

有一个可下载的城镇数据库,其中包含各种信息,包括时区和人口。您可以使用它填充一个数据库,该数据库从时区映射到该时区中最大城市的位置


请注意,GMT偏移量在这方面是非常无用的,但幸运的是,时区ID的大陆/城市术语让用户很容易选择正确的时区。

让我向您展示一下,如果您对我的祖国新西兰这样做,您可以预期的错误级别,它位于一个时区(偏远岛屿除外),然而,它延伸到了大范围的纬度:

Invercargill, New Zealand
  Time zone: NZST
  Sunrise today: 7:05 am

Auckland, New Zealand
  Time zone: NZST
  Sunrise today: 6:34 am
中国(整个国家是一个时区)、智利、阿根廷和其他国家也会出现类似的问题


好主意,但可能行不通。

让我向您展示一下,如果您对我的祖国新西兰这样做,您可以预期的错误程度。新西兰位于一个时区(偏远岛屿除外),但纬度范围很广:

Invercargill, New Zealand
  Time zone: NZST
  Sunrise today: 7:05 am

Auckland, New Zealand
  Time zone: NZST
  Sunrise today: 6:34 am
中国(整个国家是一个时区)、智利、阿根廷和其他国家也会出现类似的问题


好主意,但可能行不通。

在阅读了每个人的答案后,我想我可能会使用,它返回给定物理地址的纬度/经度和时区。我只需要添加一个界面,允许用户输入地址、城市或邮政编码,以便从api检索信息并计算日出/日落时间。这比试图将所有这些信息本地存储在数据库(这将是巨大的)中要好。感谢所有回答的人。

在阅读了所有人的答案后,我想我可能会使用,它返回给定物理地址的纬度/经度和时区。我只需要添加一个界面,允许用户输入地址、城市或邮政编码,以便从api检索信息并计算日出/日落时间。这比试图将所有这些信息本地存储在数据库(这将是巨大的)中要好。感谢所有回答的人。

时区将为您提供数十公里长的线路。幸运的是,如果你切断海洋,这一距离将减少到几千公里。你最多只剩下+/-5度的经度,对它是什么纬度只有一点概念(21度的倾斜不是很明显,也很难反映在时区中)。你可以得到一个近似的经度,但绝对与纬度无关。@b战神:一个真正的时区至少有国家粒度来适应夏令时和历史变化。一个时区可以为你提供几十公里长的线路。幸运的是,如果你切断海洋,这一距离将减少到几千公里。你最多只剩下+/-5度的经度,对它是什么纬度只有一点概念(21度的倾斜不是很明显,也很难反映在时区中)。你可以得到一个近似的经度,但绝对与纬度无关。@B战神:一个实时时区至少有国家粒度来适应夏令时和历史变化。原则上我喜欢这个想法,但我认为对于android应用程序来说,数据库的大小可能太大了。@B战神:如果你只考虑时区,只有大约400个映射—一点也不大。如果你想得到更准确的结果,你可以按人口大小排序,例如只包括2000个最大的城市。原则上我喜欢这个想法,但我认为对于android应用程序来说,数据库的大小可能太大了。@Hobo:如果你只考虑时区,只有大约400个映射-一点也不大。如果您想获得更准确的结果,可以按人口规模进行排序,例如仅包括2000个最大城市。