レイラインと太陽の軌跡 — astronomy-engineで天文計算を実装した話

レイラインと、太陽の軌跡

「江戸マップ」の開発では、地図上の2点間の方位(レイライン)を計測できる機能を提供しています。今回実装したのは、その計測方位に太陽の日の出・日の入りが重なる日付を、天文計算によって割り出す機能です。

astronomy-engineによる天文計算

実装には、依存ゼロで動作するJavaScriptライブラリ「astronomy-engine」を採用しました。VSOP87・NOVASという天文学の標準的な理論に準拠しており、歳差運動(地球の自転軸のわずかな首振り運動)にも対応しているため、過去の年代についても計算が可能です。指定した緯度・経度・年について、日の出・日の入りの時刻とその時の太陽の方位角を1日単位で走査し、計測した方位(および逆方位)と一致する日付を検出する処理を実装しています。

方位0〜360度、両方向・両イベントで一致判定

レイラインには「計測した向き」と「その逆向き(180度反対)」があり、それぞれに日の出・日の入りという2つのイベントがあります。今回の実装では、この2方向×2イベントの組み合わせすべてについて、太陽の方位が一致する日付を検出するようにしました。

「振れ角」という天文学的な概念も追記

開発の過程で、「なぜ同じレイライン上でも、計測方位側と逆方位側で一致する日付が異なるのか」という疑問が生じました。答えは、太陽の出没方位が季節によって変動する「振れ角(amplitude)」という天文学的な概念にあります。真東西(90度・270度)からのずれの大きさを示すこの値を、計測結果と合わせて表示することで、単なる日付の一覧ではなく、その背景にある天文学的な意味も伝えられるようにしています。

UIの改善も重ねて

算出結果の表示は当初、文章形式で見づらいという課題がありました。日付・方位・日の出時刻・日の入り時刻を一覧できる表形式に改め、方位が一致したセルを色分けして視認性を高めています。地図上の2点クリックのみでボタンが有効にならない不具合も、内部状態の持ち方(Reactのref参照が再描画を発生させない性質に起因)を修正することで解消しました。

開発者としての振り返り

プロモーション用のツール開発ではありますが、天文学・歴史地理学といった専門領域の知見を、いかに正確かつ分かりやすくソフトウェアに落とし込むかという点では、当社が普段手掛けるアプリケーション開発と変わらない姿勢で臨んでいます。


本記事は2026年7月時点の情報に基づいています。

著者: 株式会社シーテン — インフラ系から宇宙関連システムまで20年以上の開発経験を持つ技術者集団。2025年より生成AI・AIエージェントを活用したAI駆動開発に本格参入し、自社プロダクト「wagahi」の開発を通じて実践知見を蓄積中。

投稿者プロフィール

Mark4
Mark4