如何在javascript中计算日出和日落?

Posted

技术标签:

【中文标题】如何在javascript中计算日出和日落?【英文标题】:How to calculate the sunrise and sunset in javascript? 【发布时间】:2011-05-31 02:32:49 【问题描述】:

我正在使用 appcelerator Titan 开发一个 ios 应用,我想让我的应用在日出和日落时向用户发送本地通知

解决这个问题的一个好工具是使用 YQL 的 Yahoo 天气;但是,雅虎天气仅供非商业用途!!

我正在尝试寻找一个javascript库来计算日出/设置+一个世界国家和城市的经纬度数据库

有没有人需要同样的东西?

任何想法。

【问题讨论】:

aa.usno.navy.mil/data/docs/RS_OneDay.php , 你可以把它包装在漂亮的 ajax 库中 @ahmed:如果你在 JS 中创建了一些类似函数的计算日出和日落的东西,可以发一下吗? 我已将国家可再生能源实验室的太阳能定位算法转换为 Javascript,并使其“类似于函数”。您可以获取代码here。我会在接下来的一天左右改进文档。 【参考方案1】:

This algorithm 看起来很邪恶,无法准确解决您想要做的事情。

【讨论】:

有没有人尝试在 JS 中做这个算法?如果是的话,你能分享一下代码吗?我无法获得正确的结果... 我已经用 Python 完成了,它可以工作。不幸的是,必须考虑度数/弧度转换,cos/acos sin/asin 等差异,整数除法与浮点除法与模除法......这些是我调试时的主要罪魁祸首,但它确实非常简单. Javascript 即将推出。 @heltonbiker:请随意克隆 github.com/demianbrecht/js-riset 并完成它。我已经好几个月没有研究它了,而且我看不到自己很快就会恢复它。 感谢@DemianBrecht。我想我现在会坚持quick'n'dirty。当我对 GIT、Javascript 和地理空间技巧(面向自行车)的了解增长到足以创建一些框架时,我知道从哪里回来获取资源;oP 今天刚翻译成 JS 用于我自己的项目。欣赏:github.com/mcordingley/sunrise【参考方案2】:

使用 NOAA 的 javascript 例程获取太阳位置:here

它们包括带有纬度和经度的城市的简短列表。我认为您也可以从 iOS 获得它,但这是另一个 answer 从城市、州等获得它。

【讨论】:

【参考方案3】:

我编写了一个 Google Gadget (javascript),用于根据位于 here 的纬度/经度计算日出和日落。

它是根据Duffett-Smith“使用计算器的实用天文学”中的算法编写的。

【讨论】:

【参考方案4】:

使用 iOS(以及其他可能启用位置功能的设备),如果用户允许,您可以获取用户当前位置。然后,您可以使用本地时间和时区偏移量从它们的纬度和经度计算日出和日落。

它不会考虑地平线上的当地地理影响(例如,如果他们在山谷中,太阳升起或落下的时间会比在山上的要早),但应该足够近。使用 Google,我相信你会找到它 - 啊,我看到 Demian 已经为你做了。

【讨论】:

以上是关于如何在javascript中计算日出和日落?的主要内容,如果未能解决你的问题,请参考以下文章

日出时间和日落时间怎么计算?

昼长和日出日落时间的计算

计算该题的日出日落时间和昼长

浅谈日出日落的计算方法以及替代工具

c日出日落时间

Java : 香港经纬度和日出日落时间的计算工具类