目的地での最終方位角
大圏航路では、地球の曲面を進むにつれてコンパス上の向きが通常変化します。この計算ツールは、目的地に到達した瞬間に航路が向いている方向、すなわち最終方位角を真北から時計回りで求めます。出発地と目的地の座標を十進度で入力すると、正規化した到着方位角と16方位の表示が得られます。計算には決定論的な球面三角法を用い、地図検索、ネットワーク通信、地磁気モデル、非公開の経路サービスは使用しません。
無料で実行
到着時に示される方位の意味
最終方位角とは、大圏航路が目的地へ達した地点での進行方向です。地球儀上で、最初の座標から2番目の座標まで最短の弧をたどる場面を想像してください。出発時の向きは初期方位角ですが、航路の下では子午線が収束または発散するため、真北に対する局所的な角度は一般に移動中に回転します。このツールが返すのは、航路が2番目の座標へ到達した瞬間の角度です。角度は時計回りに測り、0度が北、90度が東、180度が南、270度が西です。数値は0以上360未満に正規化し、小数第6位までに丸めます。読みやすい要約のため16方位も付けますが、計算や描画には度数値をご使用ください。これは目的地から出発地へ戻る方位ではありません。逆向きの初期方位角は同じ弧を反対方向に進む向きであり、それを180度回転させると、この機能が示す到着時の前進方向になります。
座標の入力方法と計算結果の読み方
出発地には lat1 と lng1、目的地には lat2 と lng2 を指定してください。4つの入力値はいずれも符号付き十進度です。北緯と東経は正、南緯と西経は負で表します。緯度は-90から90、経度は-180から180の範囲に収める必要があります。長さが0の経路には意味のある到着方向がないため、2組の座標は異なる地点を示さなければなりません。計算では両地点をラジアンへ変換し、目的地から出発地へ向かう同じ大圏弧の初期方位角を求め、半回転を加えて結果を正規化します。この逆算後に回転する方法は、初期方位が球面上の弧に沿って回転する過程を追跡することと数学的に等価です。応答には両地点も再掲されるため、ログや一括処理結果を確認しやすくなります。また単位 deg と、NW や SSE などの方位区分も返します。座標は球面上の位置として扱い、方位は磁気コンパスではなく地理上の真北を基準にします。
用途に合う航法モデルの選び方
地図、経路概要、シミュレーション、ウェイポイントシステムで、出発方向ではなく到着方向を表示したい場合に最終方位角をご利用ください。航空路線図は代表例です。長距離飛行では、単一の最短弧を進んでいても、出発時の機首方向と目的地への接近方向が明らかに異なることがあります。海上計画、教育用地球儀、物流ダッシュボード、地理データ処理でも同じ考え方が使われます。球面モデルは高速で透明性が高く、一般的な大圏計算と整合しますが、地球の形状を近似したものです。精密測地で必要な回転楕円体、地形、道路、海流、風、制限区域、実際の機体や車両の動きは考慮しません。磁気偏角も適用しないため、得られた真方位を補正前の磁気コンパスと直接比較しないでください。通常の地理的な可視化や計画には、この閉形式の計算が適しています。地籍測量、安全性が重要な航法、センチメートル級測位には、検証済みの楕円体測地システムと適切な運用データをご使用ください。自動 API 呼び出しは1項目あたり $0.002 で、同じ純粋計算をブラウザー内でも実行できます。
活用例
経路の到着方向を表示
地図や地理ダッシュボード上の大圏線の終点に、真北基準の到着方位を表示します。
ウェイポイント概要を作成
飛行、航海、遠征の記録に到着方位角と読みやすい16方位区分を追加します。
球面航法の演習を確認
出発時と到着時の方位を比較する授業や計算向けに、再現可能な最終方位角を生成します。
よくある質問
最終方位角とは何ですか?
大圏航路が目的地へ到着した時点での前進方位を、真北から時計回りに測った角度です。
最終方位角と初期方位角は同じですか?
通常は異なります。大圏航路と各地点の子午線との角度が変わるため、進行方位も変化します。
出発地へ戻る逆方位ですか?
いいえ。逆向きの初期方位角を180度回転させ、元の航路が到着時に進む方向として表します。
磁北を基準に計算しますか?
いいえ。地理上の真北を基準とし、磁気偏角は適用しません。
API リクエストの料金はいくらですか?
正常に処理された各項目には公開基本料金 $0.002 が適用され、同じ決定論的計算をブラウザー内で実行することもできます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/final-bearing \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat1":51.5074,"lng1":-0.1278,"lat2":40.7128,"lng2":-74.006}'const res = await fetch("https://api.kit.forhosting.com/geo/final-bearing", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat1": 51.5074,
"lng1": -0.1278,
"lat2": 40.7128,
"lng2": -74.006
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/final-bearing",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat1": 51.5074,
"lng1": -0.1278,
"lat2": 40.7128,
"lng2": -74.006
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/final-bearing", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat1":51.5074,"lng1":-0.1278,"lat2":40.7128,"lng2":-74.006}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat1":51.5074,"lng1":-0.1278,"lat2":40.7128,"lng2":-74.006}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/final-bearing", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"lat1": 51.5074,
"lng1": -0.1278,
"lat2": 40.7128,
"lng2": -74.006
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.final_bearing",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |