ノットからウェイポイントまでの所要時間を計算
この計算ツールは、ウェイポイントまでの残距離を海里で、現在の対地速力をノットで受け取り、分かりやすい所要時間へ変換します。座標、経路サービス、出発時刻は不要で、時間、分、秒と読みやすい期間表記を返します。残距離が既に分かっており、現在速力に基づく再現可能な推定が必要な航海者、運航担当者、開発者に適しています。計算は常に決定的で、ノットが1時間当たりの海里を表す関係をそのまま使用します。
無料で実行
残りの海里と現在速力を入力します
まず、航行中のウェイポイントまでに残っている距離を海里で、現在の対地速力をノットで入力してください。距離はチャートプロッター、航海ソフトウェア、航海計画、または別の測定から取得できます。対地速力は、水中での速力ではなく地表に対する実際の移動を示すため、この計算に適しています。潮流、潮汐、風、操舵、海況によって両者は異なる場合があります。距離が0の場合はウェイポイント到達済みとして所要時間0を正しく返しますが、有限の推定には除算が必要なため、速力は0より大きくなければなりません。12.75海里や6.4ノットのような小数も使用できます。精度の設定は表示する数値の丸めだけを制御し、内部の除算は変えません。実用的な推定を得るには、距離と速力をほぼ同じ時点で取得してください。古い距離と新しい速力を組み合わせると、数学的には正しくても運航上は実態に合わない結果になることがあります。
海里とノットの計算式を理解します
1ノットは1時間当たり1海里なので、基本計算は残りの海里を速力のノット値で割るだけです。残り24海里を8ノットで維持できる船舶なら、所要時間は3時間です。応答は同じ期間を小数の時間、分、秒で示し、さらに日、時間、分、秒を組み合わせた短い表記も返します。そのため、船橋表示、航海日誌、警告しきい値、秒数を処理するアプリケーションに利用できます。数値項目は指定された精度で丸め、読みやすい表記は計算結果を最も近い整数秒に丸めます。時計は参照しないため、結果は残り時間であり、到着日時ではありません。到着予定時刻が必要な場合は、返された秒数をシステム内の信頼できるタイムスタンプへ加算してください。期間と時刻を分けることで、タイムゾーン、夏時間、端末時計、観測した正確な瞬間について暗黙の仮定を避けられます。
状況の変化に応じて安全に更新します
結果は、入力した対地速力が一定で、距離が実際に残っている航路を表すものと仮定します。実際の航海では、どちらの値も変化します。針路変更、通航分離方式、タッキング、潮流、気象、速度制限、操船、航路変更はいずれも到着時間に影響します。航海機器が意味のある変化を示したら再計算し、回答を確約ではなく現在時点の予測として扱ってください。速力の測定値が不安定な場合は、運用状況に適する範囲で、アプリケーション側から短い移動平均を渡すこともできます。水中速力による推定を意図する場合を除き、対地速力を水中速力で置き換えないでください。距離が陸上マイルやキロメートルではなく海里であることも確認してください。この機能は単位を自動変換せず、針路を調べず、船舶がウェイポイントへ近づいているかも判定しません。上流の航海装置が有効な残航路距離と意味のある現在速力を提供する必要があります。
活用例
海上航行の進捗確認
プロッターの残距離と対地速力を、読みやすい残り時間へ変換します。
船隊テレメトリーダッシュボード
海里とノットの測定値から一貫したウェイポイントのカウントダウンを算出します。
航海計画の比較
地図や時計を参照せず、複数の一定速力における所要時間を比較します。
よくある質問
どの計算式を使用しますか?
1ノットが1時間当たり1海里なので、残距離の海里を対地速力のノット値で割ります。
残距離を0にできますか?
はい。0海里は所要時間0を返し、ウェイポイントへ既に到達した状態を表します。
速力を0より大きくする必要があるのはなぜですか?
0または負の速力では有限の前進時間を計算できないため、無効な入力として拒否します。
到着時刻も返しますか?
いいえ。時計を参照せず残り時間を返します。時刻が必要な場合は、返された秒数を信頼できるタイムスタンプへ加算してください。
潮流や風を考慮しますか?
個別にはモデル化しません。その時点の移動に対する総合的な影響を既に含む対地速力をご使用ください。
API での計算料金はいくらですか?
完了したリクエストごとに $0.002 がかかります。同じ決定的な計算をブラウザーでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/travel/time-to-waypoint \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"distance_nm":24.5,"speed_knots":7}'const res = await fetch("https://api.kit.forhosting.com/travel/time-to-waypoint", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"distance_nm": 24.5,
"speed_knots": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/time-to-waypoint",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"distance_nm": 24.5,
"speed_knots": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/time-to-waypoint", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"distance_nm":24.5,"speed_knots":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"distance_nm":24.5,"speed_knots":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/time-to-waypoint", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"distance_nm": 24.5,
"speed_knots": 7
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.time_to_waypoint",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |