1年以上前に、SunCalcプロジェクトを紹介しました 。これにより、特定の日および特定の場所での太陽の軌跡と日光の位相(日没、夜明け、さまざまなタイプの夕暮れなど)を簡単に調べることができます。
ここで、これらの値を直接計算するコードを個別のオープンソースライブラリとしてリリースし、GitHubの例とドキュメントとともに公開することにしました: github.com/mourner/suncalc
このライブラリは、BSDライセンスで公開されているAstronomy Answers Webサイトの太陽の位置に関する記事の式に基づいて記述されており、約1.5 kbを消費し 、厳格なJSLint規格を満たしており、ブラウザだけでなくNode.jsなどのさまざまなサーバープラットフォームでも動作します。
ライブラリの使用例
ロンドンで今日の太陽の時期のオブジェクトを取得します。
var times = SunCalc.getTimes( new Date(), 51.5, -0.1); // (, , )
受信した夜明け時間を表示:
alert( " : " + times.sunrise.getHours() + ':' + times.sunrise.getMinutes());
夜明け中の太陽の位置(方位角と高度)を取得します。
var sunrisePos = SunCalc.getSunPosition(times.sunrise, 51.5, -0.1); // (, , )
夜明けの方位角を度で表示します。
alert( " : " + (sunrisePos.azimuth * SunCalc.rad2deg).toFixed(2));
返却時間
- 日の出 :夜明け(太陽の上端が地平線に現れる)
- sunriseEnd :夜明けの終わり(太陽の下端が地平線に触れる)
- goldenHourEnd :ゴールデンアワーの終わり(柔らかな光、写真撮影に最適な時間)
- solarNoon :晴れた正午(太陽は最高点にあります)
- goldenHour :「ゴールデンアワー」の始まり
- sunsetStart :日没の始まり(太陽の下端が地平線に触れる)
- 日没 :日没(太陽は地平線の下に完全に沈み、夕方の市民の黄lightが始まります-太陽がすでに地平線の下にあるが、通りは人工照明なしでも十分に明るい時間)
- 夕暮れ :夕方の海の黄startの始まり(すでに暗くなっているが、まだ海の地平線を進むことができるとき)
- nauticalDusk :夕方の天文の夕暮れ(視覚的には暗いが、天体観測には十分ではない)
- 夜 : 夜の始まり(ほとんどの天体観測に十分暗い)
- nightEnd :夜の終わり(および朝の天文学の夕暮れ)
- nauticalDawn :早朝の航海のたそがれ
- 夜明け :朝の夜明け(朝の市民の黄wiの始まり)
次のように、手動でフェーズを追加することもできます。
このようなコードは、SunCalc.addTime(20, "runAwayFromBeach", "goToBeach");
SunCalc.getTimes
runAwayFromBeach関数(太陽が20°を超える瞬間)とgoToBeach (太陽が20°を下回るとき)の結果に追加されます。
可能な用途
一見すると、サイトは旅行計画や写真家などに思い浮かびます。 しかし、想像力を働かせて、たとえば、その日のリアルタイムに応じてサイトの設計を変更することができます。 または、不動産サイトで年間を通して特定の角度から光グラフを作成します。 私は覚えている、彼らはエアコン設置会社から感謝の気持ちで一度私に手紙を書いたことさえあり、その従業員は現在仕事でSunCalcを積極的に使用している... 一般的に、考えてみると、たくさんのアプリケーションがあります!
この小さなライブラリに役立つアプリケーションが見つかることを願っています。 私はコメントとコメントのフィードバックを喜んでいます。 よろしくお願いします!
更新 :goldenHour、goldenHourEndの時間を追加し、手動で(太陽の特定の高さに対応する)独自の時間を追加する機能を追加しました。
更新2 : 真ん中からのより深刻なタスク(月、惑星などの計算)に適した代替手段-github.com/monoid/starjs