用java计算日出和日落

By simon at 2018-02-28 • 0人收藏 • 40人看过

我搜索一种方法来计算给定时区的日出和 - 集 位置。我想要类似的东西 [Zend_Date的运算](HTTP://framework.zend.com/manual/en/zend.date.overview.html#zend.date.other.sun)。 这个想法是在你可以的地方有一个应用程序选择一个位置并且基于 在那你可以得到实际的时间和日出,也可以设定时间。 欢呼和感谢, -lony

6 个回复 | 最后更新于 2018-02-28
2018-02-28   #1

看看[sunrisessetup-ib-java](http://mikereedell.github.com / sunrisesunsetlib-java /)计算日出/ sunse来自GPS的t次 坐标和日期。

2018-02-28   #2

看看[sunrisessetup-ib-java](http://mikereedell.github.com / sunrisesunsetlib-java /)计算日出/ sunse来自GPS的t次 坐标和日期。

2018-02-28   #3

计算日出和日落实际上是一个非常难以解决的问题 大多数声称做它的图书馆都使用过于模仿太阳能的普通模型 系统实际上并不能产生准确的结果。 地球绕太阳和月球的轨道关于地球是 不规则的,地球的旋转轴以两种不同的方式摇摆 (岁差和章动)和时间天文学家使用的比例尺不一致 协调世界时(UTC)。最重要的是,大气折射 扭曲了天体的位置(尤其是靠近天体的位置) 地平线);典型的是太阳和月亮的升起和落下被定义为 磁盘在地平线上的第一次出现,而不是通过了 磁盘中心;和感知的大小随着时间的推移,磁盘的数量会有所不同 根据它与观察者的距离。 我需要一个准确的计算这个项目我正在研究和 写了一个图书馆来整合所有最先进的模型。 我们还提供一个Web API f或者这个以及Web API和Java库都可以 找到: http://askgeo.com/ 该网站还提供了很多其他信息取决于纬度和纬度的信息 经度。你可以在这里阅读关于图书馆的细节: http://askgeo.com/database/天文 库和Web API是商业用途,但我们可以免费访问Web API 以合格的非营利机构,研究人员和开源项目。对于 商业用户,定价信息在: http://askgeo.com/#pricing gives日出和日落(除其他外)是 列表中的“天文学”一个。

2018-02-28   #4

你可以使用这个免费的web服务来获取[sunsrise和日落时间](http ://sunrise-sunset.org/api) 它非常易于使用。它在格林尼治标准时间做出反应的时间,所以你需要做的 经纬度到时区的转换,如果你需要的话。

2018-02-28   #5

刚才我发布了[Time4J-v4.29](https://github.com/MenoData/Time4J) 这也支持[日出/日落计算](hTTP://time4j.net/javadoc- EN / NET / time4j /日历/航天/ SolarTime.html)。例:

 SolarTime hamburg = SolarTime.ofLocation(53.55, 10.0);
 Optional<Moment> result = PlainDate.nowInSystemTime().get(hamburg.sunrise());
 System.out.println(result.get().toZonalTimestamp(() -> "Europe/Berlin"));
爪哇-8-兼容性: 结果类SolarTime(类型Moment或PlainTimestamp)的ts可以 轻松地转换为Java-8类型,如Instant或LocalDateTime, 通常通过调用方法toTemporalAccessor()。 关于算法: 主要算法与使用的相同 [NOAA](https://www.esrl.noaa.gov/gmd/grad/solcalc/)(主要差异 Δ-T计算也被认为是account by Time4J)。 NOAA- 算法(实际上与Jean Meeus开发的算法相同)更多 比威廉姆斯 - 算法库sunrisesunsetlib使用的算法 在@dogbane的回答中提到,尤其是在极地地区或在极地地区。 怎么样有史以来,Time4J也支持Williams算法,通过指定 计算器名称。这个简单的算法仍然可以用在没有rmal地理 地点和产量1-2分钟的精度。 其他特性: 一些噱头喜欢蓝色小时,各种暮光之城定期,阳光充足 或确定极地夜间/午夜太阳或观测者高度的影响 也支持,请参阅API。 关于精度的注意事项: 我们应该永远记住像这样的拓扑事实 山脉或special天气状况对实时有很强的影响 日出/日落,不能在支持太阳的任何图书馆中建模上升 /日落计算。

2018-02-28   #6

你可能想使用[commons-suncalc](https://shredzone.org/maven/commons- suncalc / index.html),一个免费的依赖库Java⩾7:

Date date = // date of calculation
double lat, lng = // geolocation
SunTimes times = SunTimes.compute()
            .on(date)       // set a date
            .at(lat, lng)   // set a location
            .execute();     // get the results
System.out.println("Sunrise: " + times.getRise());
System.out.println("Sunset: " + times.getSet());

登录后方可回帖

Loading...