2方位による距離計算
物標を45°で測り、2海里走って90°で測ると、1回目は2.828427124746海里、2回目は2海里、正横では2海里離れています。2つの相対方位と航走距離を入れて、プロッターの値を確かめられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 最初の方位
- 45
- 2番目の方位
- 90
- 航走距離
- 2
- 方位差
- 45
- 第1方位時の離隔距離
- 2.8284271247
- 第2方位時の離隔距離
- 2
- 正横時の離隔距離
- 2
沿岸航海者は今も、灯台・岬・目立つ塔などの固定物標に対する連続した2回の方位観測で、レーダーやGNSSなしに物標までの距離を見積もります。一定の針路を保ち、物標の相対方位を記録し、既知の距離を航走したあと、同じ物標の2回目の相対方位を取ります。この2方位距離計算は、2つの船位と物標がなす三角形に正弦法則を適用し、第1観測時・第2観測時の距離、および物標が正横になったときの古典的な距離を返します。船首角の倍角や4点方位などの特例も同じ式から得られ、訓練と当直確認の一貫性が保てます。
2回の方位と航走距離が測るもの
船舶が一定針路を保ち固定物標を2回観測すると、2つの船位の間は長さが既知の直線区間—ログ、速力と時間、または計画航程から得た航走距離—になります。第1相対方位は、第1観測時の針路と物標への視線のなす角です。第2相対方位は、その距離を航走したあとに測る同種の角です。
これら2つの角と航走距離は、第1位置・第2位置・物標を頂点とする三角形を成します。第1位置の内角は第1相対方位に等しく、物標における角は2相対方位の絶対差、第2位置の角は両観測が針路の同じ側にあるとき第2相対方位の補角になります。
正弦法則により、第2位置での距離は航走距離×第1方位の正弦÷方位差の正弦、第1位置での距離は航走距離×第2方位の正弦÷同じ差の正弦、正横時の距離は航走距離×両正弦の積÷その差の正弦として得られます。相対方位は、物標が針路線上で真針路や真反針にならないよう0度超180度未満に限り、三角形が潰れないよう互いに異なる必要があります。
航走距離の単位—海里・キロメートル・法定マイル—は距離結果すべてにそのまま引き継がれます。
航海中にこの計算が役立つ場面
当直士官や沿岸スキッパーは、灯台や岬だけが目立つ標識のとき、プロッタ距離の突き合わせに2方位距離計算を使います。レーダークラッタや断崖付近のGNSSマルチパスが気になる場面でも有用です。セーリング学校や沿岸航法の試験準備では、船首角の倍角や4点方位を再現する決定的なオラクルが必要で、受験者はフルECDISなしで手計算を照合できます。
視覚的な操船をモデル化するシミュレータやゲームエンジンは、記録した2相対方位と航走距離から同じ純モジュールで距離を置けます。
方位は生のコンパス読みではなく針路からの相対角として保ち(真方位・磁方位なら同じ舷側の相対方位に換算してから)、丸めた距離をテストに固定すれば、自前の海図ライブラリなしで課題・LMSプラグイン・エッジワーカー向けに再現可能な沿岸幾何が得られます。
活用例
ブリッジと沿岸操船の確認
灯台の相対方位2回と航走距離から、各観測時および正横時の距離を求め、レーダーやプロッタの測距と突き合わせます。
沿岸航法の訓練と試験
船首角の倍角や4点方位の演習を、教科書の正弦法則と一致する決定的オラクルで検証します。
よくある質問
ここでの相対方位とは何ですか?
船の針路(航跡に沿った船首方向)と物標への視線がなす角(度)です。真方位や磁方位を測った場合は、呼び出し前に相対方位へ換算してください。
2つの方位が異ならなければならない理由は?
等しい、またはほぼ等しい方位では sin(|β−α|) がゼロになり三角形が潰れ、距離が未定義になります。
45°と90°で測る四点方位法とは何ですか?
1回目を45°、2回目を90°で測る古典的な方法です。このとき正横での距離は航走距離と等しく、2海里走れば物標は2海里の距離にあります。
どの3つの距離が分かりますか?
1回目の観測時、2回目の観測時、そして物標が正横に来たときの距離です。45°、90°、航走距離2なら、2.828427124746、2、2になります。
方位が0°から180°の間でなければならないのはなぜですか?
0°や180°では物標が針路線上の真正面か真後ろにあり、三角形ができないため、距離を求められません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/distance-off-two-bearings \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_bearing":45,"second_bearing":90,"distance_run":2}'const res = await fetch("https://api.kit.forhosting.com/geo/distance-off-two-bearings", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_bearing": 45,
"second_bearing": 90,
"distance_run": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/distance-off-two-bearings",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_bearing": 45,
"second_bearing": 90,
"distance_run": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/distance-off-two-bearings", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_bearing":45,"second_bearing":90,"distance_run":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_bearing":45,"second_bearing":90,"distance_run":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/distance-off-two-bearings", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"first_bearing": 45,
"second_bearing": 90,
"distance_run": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.distance_off_two_bearings",
"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より大きく180より小さく、航走距離は正でなければなりません。method 文字列は相対方位の正弦法則解を示し、formula は3つの恒等式を回答横の表示用に再掲します。検証失敗は課金されず、成功した parse 呼び出しは公開の基本料金を用います。必須の有限数3つを含むJSON本体をPOSTしてください。first_bearingは第1観測の相対方位(度)、second_bearingは第2観測の相対方位(度)、distance_runは一定針路での両観測間の正の航走距離です。各フィールドはJSON数値または数値文字列でよく、bearing1、bearing2、first_angle、second_angle、alpha、beta、run、distance、distance_steamed などの別名が同じ量に使えます。2方位が等しい、または絶対差の正弦が実質ゼロの場合、一意の距離三角形が存在しないためハンドラは invalid_input で拒否します。例:first_bearing が45、second_bearing が90、distance_run が2なら、4点方位の規則どおり正横距離は航走距離と同じ2になります。
2方位距離APIが役立つ場面
実装は純 parse の tier A のため、成功呼び出しはモデルトークンも外向きネットワークもなく、公開基本料金 $0.002 です。
連携の活用例
シミュレータと自動化
記録した相対方位と航走距離を純 parse API に渡し、ブリッジシミュレータやノートが海図ライブラリなしで安定した距離を得ます。
技術的な質問
2方位から物標までの距離をどう計算しますか?
first_bearing と second_bearing を相対方位(度、0と180の間に厳密に収める)として送り、distance_run に両観測間の正の航走距離を指定します。APIは正弦法則で第1・第2位置および正横時の距離を返します。
船首角の倍角は使えますか?
はい。第2相対方位が第1の2倍のとき、distance_off_at_second は distance_run と等しくなります。4点方位の組(45°のあと90°)では distance_off_abeam が航走距離と等しくなります。
2方位距離計算の料金は?
ブラウザツールは無料です。APIリクエストは成功呼び出しごとに前払いKIT残高から $0.002 を使用し、無効入力は課金されません。