海上大圏距離計算
マイアミからバミューダまでの大圏距離は899.560522海里で、出発時の真針路はおよそ60度です。2つの海上位置を10進数の度で入れるだけで、航海計画の最初の見積もりができます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- Lat1
- 25.7617
- Lng1
- -80.1918
- Lat2
- 32.3078
- Lng2
- -64.7505
- 距離 (海里)
- 899.560522
- 距離 (km)
- 1,665.986087
- 初期針路 (°)
- 60.510586
- 中心角 (°)
- 14.982573
外洋航海の計画は、市街地のキロメートルではなく、海里と真方位の度で行います。港へのアプローチ、ウェイポイント、AISの測位、あるいは海図上の出港点と陸着点として、2つの海上位置を緯度・経度でお持ちの場合、球面上の最短経路(大圏)と、第1点から第2点へ向かう初期針路が必要です。本海上ルート大圏距離計算機は、10進度数の座標4つを受け取り、範囲を検証し、公表された地球の平均半径に対してハーバーサインの中心角公式を適用し、弧長を国際海里(1 NM あたりちょうど 1852 メートル)へ変換し、出港点での前進方位を 0 以上 360 未満の真針路(度)として返します。地図タイル、ジオコーディングのネットワークホップ、乱数シードは一切なく、オフラインでも再計算できる決定論的な球面航法の算術のみです。
大圏航法距離と初期針路の意味
球面上で2点間の最短経路は大圏の弧です。これは地球の中心と両位置を通る平面が球と交わる線です。航海者は歴史的にその正航路(オルトドロム)を海図上に描き、海里で距離を読み取りました。
国際海里はちょうど 1852 メートルと定義されています。本機能は数値的に安定したハーバーサイン公式で中心角を求め、慣例の地球平均半径 6371 キロメートルを掛け、その 1852 m の定義で弧長を海里に変換します。同じ弧をキロメートルでも、中心角を度でも返すため、他の球面ツールとの突合せができます。
初期針路は、出港点の緯度経度における前進真方位です。第1点を離れるときの大圏航跡の方向を、真北から時計回りに度で表し、半開区間 0 から 360 に正規化します。その方位は全航程で一定の等角航路(ランブライン)ではありません。
長い外洋区間では大圏に沿う真針路が変化するため、絶対最短距離より一定のコンパス針路が重要な場合、従来は中間ウェイポイントや純ランブを用いました。ここでは初回の航海計画で使う古典的な数値ペア—大圏上の海里数と、どちらへ真に出発するか—が得られます。モデルは球面であり、WGS84 上の Vincenty や Karney のような楕円体測地ではありません。
測量級ライブラリと結果がわずかに異なる場合がありますが、航海見積もり、教育、自動化フィルタには十分です。公式海図や型式承認済み ECDIS の代替ではありません。
入力契約、検証、応答の読み方
緯度は −90 から 90 の閉区間、経度は −180 から 180(両端含む)になければなりません。よくあるクライアント不具合は、経度を x として先に保存する GIS の習慣から貼り付けたときに緯度と経度を入れ替えることです。範囲チェックは通っても全く別の海域になってしまうため、lat が南北、lng が東西であることを必ず確認してください。
対蹠点およびほぼ対蹠のペアに対応し、内部クランプによりハーバーサイン段階の浮動小数点端で NaN が出ないようにしています。ティア A のブラウザ経路では、フルパイプラインを組まずにマイアミ—バミューダや任意のウェイポイントを試せます。
地名から始めるときだけジオコーダと組み合わせ、すでに海図または GPS の lat/lng がある場合は、正航路を測るだけのために再ジオコードしないでください。
大圏で航海計画を立てる人
ヨットの航海計画、チャーター船団、沿岸運航者は、本格的な気象ルーティングソフトへ投資する前に、燃料・当直・気象ウィンドウを見積もるために海里の大圏距離を使います。海運分析や AIS エンリッチメントのジョブは、商用地図課金スタックを立てずに、各発着ペアの横に安価で監査可能な NM 列を必要とします。
海事教育プラットフォームや試験対策ツールは、公表された半径と換算に対して学生が正航路ワークシートを照合できるよう、距離と初期真針路の両方を返す決定論的なオラクルを必要とします。「検証失敗は残高を消費しません。一定方位のランブ、多寄港最適化、潮流については専用ツールを残してください。
本機能は正航路のプリミティブです。範囲を検証し、大圏を NM で測り、出港針路を報告して完了です。
活用例
ヨットおよび商業航海の計画
出港と陸着の lat/lng を入力すると、燃料と当直の初回見積もり用に大圏距離(海里)と初期真針路が得られます。
海事教育と試験チェック
公表半径と 1 NM あたり 1852 m の固定球面モデルに対し、学生が正航路距離と出港方位を照合できます。
よくある質問
海上の大圏距離はどのように計算されますか?
ハーバーサイン公式が半径 6371 km の球上で2つの lat/lng 位置の中心角を求め、弧長を 1 NM あたりちょうど 1852 メートルの国際海里へ変換します。
等角航路(ランブ)距離と同じですか?
いいえ。 本機能は大圏(正航路)距離と初期針路を計算します。ランブは一定方位を保ち、中緯度の外洋区間では一般に長くなります。
初期針路は航海の間ずっと同じですか?
いいえ。最初の地点を離れるときの方向で、長い外洋の区間では大圏に沿った真針路が変わり続けます。一定の針路を優先する場合は、中間の変針点を置くか等角航路を使います。
球体モデルの精度はどのくらいですか?
地球を平均半径6371 kmの球として扱うため、測量用の楕円体モデルとは1パーセントのごく一部ほどの差が出ることがあります。航海の見積もりには十分ですが、公式の海図の代わりにはなりません。
緯度と経度を入れ違えるとどうなりますか?
値が有効な範囲に収まったまま、まったく別の海域を表してしまうことがあります。結果を使う前に、緯度が南北、経度が東西の座標になっているか必ず確かめてください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/travel/sea-great-circle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat1":25.7617,"lng1":-80.1918,"lat2":32.3078,"lng2":-64.7505}'const res = await fetch("https://api.kit.forhosting.com/travel/sea-great-circle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat1": 25.7617,
"lng1": -80.1918,
"lat2": 32.3078,
"lng2": -64.7505
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/sea-great-circle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat1": 25.7617,
"lng1": -80.1918,
"lat2": 32.3078,
"lng2": -64.7505
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/sea-great-circle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat1":25.7617,"lng1":-80.1918,"lat2":32.3078,"lng2":-64.7505}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat1":25.7617,"lng1":-80.1918,"lat2":32.3078,"lng2":-64.7505}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/sea-great-circle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"lat1": 25.7617,
"lng1": -80.1918,
"lat2": 32.3078,
"lng2": -64.7505
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.sea_great_circle",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
入力契約、検証、応答の読み方
必須の有限数4つ—出港の海上位置 lat1・lng1、目的地 lat2・lng2—をすべて10進度数で JSON 本体に送信してください。範囲外、欠落フィールド、空文字列、真偽値、非有限数は invalid_input で失敗し、課金されません。同一位置では distance_nm と distance_km が正しく 0 になり、initial_course_deg は慣例で 0 です。料金は成功した API アイテムあたり定額の $0.002 です。
海上大圏 API が活きる場面
実装は純粋なパース・ティア A のため、成功呼び出しはモデルトークンも外向きネットワークもなく、公表の基本料金 $0.002 です。
連携の活用例
AIS と船団 OD のエンリッチメント
商用地図 API や GIS サーバなしで、発着航海エクスポートに distance_nm と initial_course_deg 列を追加します。
技術的な質問
initial_course_deg とは何ですか?
出港点における大圏上の前進真方位で、真北から時計回りの度、範囲 [0, 360) に正規化されます。全航程で一定のランブ針路ではありません。
受け付ける座標範囲は?
緯度 lat1/lat2 は −90 から 90(両端含む)、経度 lng1/lng2 は −180 から 180(両端含む)です。範囲外または非数値は invalid_input を返し、課金されません。
海上ルート大圏計算機の料金は?
ブラウザツールは無料です。API リクエストは成功呼び出しあたり $0.002 でプリペイド KIT 残高を使用し、無効入力は課金されません。