大圏航路の赤道交差経度と方位を計算
出発地点と方位を入れると、大圏が最初に赤道と交わる場所が分かります。北緯40度・西経73度から方位120度で進むと南向きに赤道を越え、その経度と方位が表示されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 緯度
- 40
- 経度
- -73
- 方位
- 120
- 交差経度
- -24.9301051899
- 交差方位
- 138.4392374298
- 角距離
- 59.2102669712
- 正規化した方位角
- 120
この計算ツールは、向きが指定された球面上の大圏航路が最初に緯度0度へ達する位置を求めます。開始緯度、開始経度、初期方位を入力すると、交差経度、交差時の方位、移動した角距離、北向きまたは南向きの方向を返します。航程線や点を並べた折れ線ではなく、大圏全体を数式で扱います。航法計画、地理ソフトウェアの検証、航路表示、球面幾何の学習など、根拠が明確な球面計算が必要な場面でご利用いただけます。
向きを持つ大圏航路を指定します
開始緯度と開始経度を10進度で入力し、真北から時計回りに測った初期方位を指定してください。緯度はマイナス90度から90度、経度はマイナス180度から180度の範囲です。有限の方位値であれば受け付け、0度以上360度未満へ正規化します。
1つの地点だけでは無数の大圏が通るため、方位が必要です。地点と方向を組み合わせることで、対象の大圏と進行方向が決まります。結果は、完全な大圏と赤道にある2つの対蹠的な交点から任意に選ぶのではなく、前進して最初に到達する交点です。
開始地点がすでに赤道上にあり、航路が直ちに赤道を離れる場合は、その開始地点を角距離0度の交点として返します。赤道上から正確に東または西へ進む場合は大圏全体が赤道と一致するため、交差経度を一意に決められず、入力エラーになります。
交差位置と方位の計算方法
実装では、開始地点を3次元の単位ベクトルで表します。その地点における北向きと東向きの局所接ベクトルを作り、指定された初期方位に従って合成し、航路の前進接ベクトルを得ます。ある球面角距離だけ進んだ位置は、開始ベクトルに距離の余弦を掛けた項と、接ベクトルに距離の正弦を掛けた項の和で表せます。
この式の鉛直成分を0にすると、次の赤道交点を直接求められます。解を0度以上180度未満の最初の距離へ整えるため、航路を細かくサンプリングせずに前方の交点を一貫して選択できます。交点では同じ式の微分から移動方向を取得し、局所的な北成分と東成分へ射影して2引数の逆正接から方位を算出します。
北成分の符号により、北向きか南向きかも判定します。
球面航法の結果を正しく解釈します
返される交差経度と方位は、理想的な球面上の大圏を表します。球面三角法、概念的な航路計画、多くの地図表示、再現可能なテストデータに適したモデルです。WGS 84楕円体上の測地線計算ではありません。
地球の扁平率により、運用精度が必要な交差位置はずれる可能性があります。航空、海運、測量、安全性が重要なシステムでは、所定の基準モデルと許容誤差をご使用ください。角距離は地球中心角の度数です。
概算の地表距離が必要な場合はラジアンへ変換し、選択した球半径を掛けてください。交差方位は緯度0度における瞬間的な前進コースであり、初期方位の繰り返しではありません。方向欄で半球間の移動も確認できます。
活用例
半球をまたぐ航路を計画
理想的な大圏航路が反対側の半球へ入る経度とコースを確認できます。
地理ソフトウェアを検証
方位を追跡する処理や緯度0度との交差を検出する処理に、再現可能な基準値を提供します。
球面航法を説明
大圏の方位が変化する理由と、進行方向により2つの対蹠交点の一方が選ばれる仕組みを示します。
よくある質問
2つの赤道交点のどちらを返しますか?
初期方位で定まる前進方向へ進み、最初に到達する交点を返します。
開始地点が赤道上の場合はどうなりますか?
航路が赤道を離れる場合は開始地点を距離0の交点として返します。赤道に沿う場合は交点が一意でないため入力エラーです。
交差方位は初期方位と同じですか?
通常は異なります。 大圏のコースは位置により変わるため、赤道上の前進接線から改めて計算します。
WGS 84楕円体を使用しますか?
いいえ。 理想的な単位球を使用します。運用精度が必要な場合は楕円体測地線法をご利用ください。
結果の角距離は何を意味しますか?
出発地点から赤道の交点までの大圏の弧を、地球の中心から見た角度で表したものです。常に前方の最初の交点なので180度未満になり、赤道上から出発した場合は0になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/great-circle-equator-crossing \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":40,"longitude":-73,"bearing":120}'const res = await fetch("https://api.kit.forhosting.com/geo/great-circle-equator-crossing", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 40,
"longitude": -73,
"bearing": 120
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/great-circle-equator-crossing",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 40,
"longitude": -73,
"bearing": 120
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/great-circle-equator-crossing", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":40,"longitude":-73,"bearing":120}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":40,"longitude":-73,"bearing":120}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/great-circle-equator-crossing", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"latitude": 40,
"longitude": -73,
"bearing": 120
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.great_circle_equator_crossing",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
球面航法の結果を正しく解釈します
自動処理では、各リクエストの基本料金は$0.002です。
技術的な質問
APIリクエストの料金はいくらですか?
1回あたりの基本料金は$0.002です。