我有一个时间,一个给定的纬度(度数)。是否有任何方法可以使用此信息在 Javascript 中计算日出和日落时间?
问问题
20857 次
4 回答
33
SunCalc 似乎做你想做的事
SunCalc 是一个小型的 BSD 许可 JavaScript 库,用于计算给定位置和时间的太阳位置、日光相位(日出、日落、黄昏等的时间)、月亮位置和月相
于 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 回答