20

我有一个时间,一个给定的纬度(度数)。是否有任何方法可以使用此信息在 Javascript 中计算日出和日落时间?

4

4 回答 4

33

SunCalc 似乎做你想做的事

SunCalc 是一个小型的 BSD 许可 JavaScript 库,用于计算给定位置和时间的太阳位置、日光相位(日出、日落、黄昏等的时间)、月亮位置和月相

https://github.com/mourner/suncalc

于 2014-03-17T17:03:00.233 回答
9

相关代码可在http://www.esrl.noaa.gov/gmd/grad/solcalc/找到

您需要经度、纬度和日期。如果您想要在当地时间或世界时得到答案,这将很有帮助。获得真正准确性所需的校正(以及您用于“日出”和“日落”的定义)都在计算的有效性中发挥着巨大的作用。

如果您只是想知道“大约”何时太阳与地平线齐平,“假设地球是球形的,围绕太阳的圆形轨道,并且没有大气失真” - 那么整个拍摄比赛就会减少到相当可控的程度。但如果你想要真正的答案,你必须通过上述网站的大约 600 行脚本。

对于近似值,您可以看到这个较早的答案

于 2013-09-22T21:59:23.770 回答
3

如果您使用 JavaScript 作为服务器端(Node.js)的编程语言,Sun-time就足够了。

npm install sun-time ; 

然后 :

var sun=require('sun-time');
 sun('Tunis') // -> i.e : return {rise:"05:00",set:"18:36"}

更多细节

于 2016-07-22T21:53:06.387 回答
2

这个 javascript 程序

https://github.com/Triggertrap/sun-js

仅根据您所在位置的纬度和经度计算日出和日落时间,可以从 GPS 自动获取,如下所示:

<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script> 

它包括一个自述文件来解释如何使用它。它计算天顶,并且非常准确。

于 2017-08-31T16:05:24.073 回答