クロストラック距離計算機
53.2611, −0.7972の位置は、2つの経由点を結ぶ大圏航路の右側307.5495704195 mにあります。位置と航路の始点・終点を入力すると、符号付きの偏位がメートルとキロメートルで、左右の区別とともに分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 緯度
- 53.2611
- 経度
- -0.7972
- 始点緯度
- 53.3206
- 始点経度
- -1.7297
- 終点緯度
- 53.1887
- 終点経度
- 0.1334
- 半径 m
- 6,371,000
- クロストラック m
- -307.5495704195
- クロストラック km
- -0.3075495704
- 絶対値 m
- 307.5495704195
クロストラック距離は、精密なナビゲーションの問いに答えます。この測位点は、2つのウェイポイント間で計画した大圏航路からどれだけ離れ、コースラインのどちら側にあるのか、という問いです。パイロット、航海士、ドローンオペレーター、物流エンジニアは、この符号付き偏位を使って針路偏差を監視し、コリドー警報を作成し、フライト管理システム全体を再現せずに公開された航跡線に対して飛行経路を評価します。この機能は、WGS84 球体上で、クエリ点の緯度・経度と経路の始点・終点の座標を受け取り、haversine 距離と初期方位角による古典的な球面公式を適用し、左・右・航跡上を明確に示すラベルとともにメートルとキロメートルを返します。
クロストラック距離が示すもの
計画した航路の始点Aと終点Bを通る大圏を考えます。第3の地点からその大圏へ垂線を下ろすと、球面上で直角に交わります。この垂線の長さがクロストラック距離で、位置が予定の航路からどれだけ外れているかを表します。符号は側を示し、AからBへ進むときプラスは左、マイナスは右で、ゼロにごく近い値は航路上と表示されます。半径は特に指定しなければ6,371,000メートルの球を使い、結果はメートルとキロメートルで返ります。
使われる場面と注意点
パイロット、航海士、ドローンの操縦者、物流の担当者が、針路のずれの監視、現在位置が回廊を外れたときの警告、記録した飛行と公表された航路との比較に使います。例では、調べた地点はAからBへの線の右側307.5495704195メートルにあります。AとBを入れ替えると左右も入れ替わるので、2つの経由点の順番に注意してください。範囲外の座標は丸めずに受け付けないため、GPSのノイズが偽の偏位になることはありません。
活用例
航空・海上コリドーの監視
2つのウェイポイント間の公開された大圏航路とライブ GPS 測位を比較し、符号付きクロストラック偏位が許容コリドー半幅を超えたら警報を出します。
ドローン・ロボティクスの経路評価
記録された軌跡を計画経路線に対して採点し、QA レポートや自動採点の飛行試験のために左右の偏差をメートルで報告します。
よくある質問
クロストラック値の正負は何を意味しますか?
正はクエリ点が始点から終点への向きのある大圏経路の左側にあること、負は右側を意味します。
緯度や経度が範囲外の場合はどうなりますか?
緯度は −90 から 90、経度は −180 から 180 の範囲でなければなりません。検証失敗は課金されません。
クロストラック距離計算機は無料ですか?
ブラウザのツールはお使いのデバイス上で無料で動作します。検証失敗は課金されません。
地球半径を変更できますか?
別の球体をモデル化するときは別の正の半径を渡してください。距離は R に比例して変化します。
回廊から外れたときに警告するにはどう使いますか?
偏位の絶対値を、許容される回廊の幅の半分と比べます。現在位置のクロストラック距離がそれを超えれば回廊の外に出ており、符号から航路の左右どちらへずれたかが分かります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/cross-track-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":53.2611,"lon":-0.7972,"start_lat":53.3206,"start_lon":-1.7297,"end_lat":53.1887,"end_lon":0.1334}'const res = await fetch("https://api.kit.forhosting.com/geo/cross-track-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 53.2611,
"lon": -0.7972,
"start_lat": 53.3206,
"start_lon": -1.7297,
"end_lat": 53.1887,
"end_lon": 0.1334
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/cross-track-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 53.2611,
"lon": -0.7972,
"start_lat": 53.3206,
"start_lon": -1.7297,
"end_lat": 53.1887,
"end_lon": 0.1334
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/cross-track-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":53.2611,"lon":-0.7972,"start_lat":53.3206,"start_lon":-1.7297,"end_lat":53.1887,"end_lon":0.1334}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":53.2611,"lon":-0.7972,"start_lat":53.3206,"start_lon":-1.7297,"end_lat":53.1887,"end_lon":0.1334}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/cross-track-distance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"lat": 53.2611,
"lon": -0.7972,
"start_lat": 53.3206,
"start_lon": -1.7297,
"end_lat": 53.1887,
"end_lon": 0.1334
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.cross_track_distance",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
範囲外の緯度・経度は invalid_input で失敗し、課金されません。プリペイド API は、サーバーや SDK が同じ契約を必要とする場合、成功した要素ごとに $0.002 を請求します。
クロストラック距離の意味と3点の指定方法
球体地球モデル上で、経路の始点 A と終点 B を通る大圏を想像してください。任意の第3のクエリ点 P から、球面の意味で航跡と直角に交わる別の大圏に沿って垂線を下ろすことができます。その垂線の長さを球の半径でスケーリングしたものがクロストラック距離です。符号付きの形は、向きのある経路のどちら側にいるかを示します。緯度はマイナス90度から90度までの両端を含む範囲、経度はマイナス180度から180度までの両端を含む範囲になければなりません。別の球体を意図的にモデル化するときだけ増減してください。正の値は A から B へ進むとき左側、負の値は右側を意味し、ゼロに近い大きさは数値安定性のため on_track として報告されます。クエリ点には必須フィールド lat と lon、A には start_lat と start_lon、B には end_lat と end_lon を、すべて十進度で送信してください。クライアントがすでに latitude、longitude、lat1、lon1、lat2、lon2 という名前を使っている場合、これらのエイリアスも受け付けます。これらの範囲外の座標は、フィールド名と境界を明示したメッセージとともに invalid_input を発生させ、呼び出し側が不良な GPS ノイズを黙って切り詰めて偽の偏位にすることはありません。オプションの radius_m の既定値は637万1000メートルで、多くの航空の例で使われる平均地球半径です。A と B が一致する場合、経路は未定義となり、エンジンはリクエストを拒否します。壁時計も外部地図サービスもない純粋な算術なので、同一の入力は常に同一の JSON を生成します。
符号付きメートル、側面ラベル、沿道距離、方位角の読み方
ドローンのコリドーや滑走路規模の監視にはメートルを、大洋や長距離航空路にはキロメートルを選んでください。検証失敗が距離を捏造することはありません。成功時、レスポンスはすべての座標と使用した半径をそのまま返し、続いて cross_track_m と cross_track_km を符号付き垂直偏位として報告します。absolute_m と absolute_km は符号なしの大きさで、どれだけ逸脱したかだけを気にするしきい値チェックに便利です。side フィールドは、ペイロードに記載された符号規約 positive_left_of_path_A_to_B に従い、left、right、on_track のいずれかになります。along_track_m は A から無限の大圏に沿って B 方向への進行度を測り、P が有限の弧 A–B の外に射影される場合は負になったりセグメント長を超えたりします。側方と縦方向の文脈の両方が必要なときは path_length_m と併用してください。path_bearing_deg は A から B への初期針路で、北から時計回りに0から360の区間の度数です。angular_cross_track_deg は、教科書の表と比較する単体テストのために偏位を角度で表し直したものです。method は常に spherical_cross_track なので、下流のコードは形状を推測せずにアルゴリズムを検証できます。フィールド欠落、非有限数、範囲外座標、一致した端点はすべて invalid_input で閉じた形で失敗し、プリペイド API では課金されません。
API の使い方、料金、ナビゲーションのワークフロー、実用上の限界
ブラウザで動く無料のクロストラック距離計算機は、地理空間ライブラリをインストールせずに、授業のデモ、海図作業、手軽な確認に使えます。モデルは楕円体ではなく球体なので、サブメートルの測量作業にはローカル ENU や完全な測地ライブラリを適用してください。ナビゲーションコリドー、宿題、フリート警報では、平均地球の球体が標準的なパイロット・船員の参考書に掲載された公式と一致します。6つの必須座標とオプションの radius_m を含む JSON ボディを送信してください。プリペイド API は、飛行運航ダッシュボード、船舶交通システム、ラストマイル配送ルーター、シミュレーション harness が KIT 残高で成功要素ごとに $0.002 の安定した契約を必要とする場合に利用します。検証失敗は、エンジンがリクエストを拒否した後、残高を消費しません。地名やライブ航跡が必要な場合は、このエンドポイントを独自のジオコーダーや AIS フィードと組み合わせてください。この製品は球体上の幾何学のみを測定します。SDK を公開する開発者は、cross_track_m と side を警報ルールに直接マッピングできます。absolute_m がコリドー半幅を超えたら発火させ、学生が球面三角形を手で解くときに目にするのと同じフィールドで地図を緑・黄・赤に色付けします。
連携の活用例
教室でのナビゲーションと試験オラクル
学生は球面クロストラックの問題を手で解き、採点者はワークシートで使ったのと同じ A、B、P の座標から決定論的な JSON を固定します。
技術的な質問
この計算機でクロストラック距離を計算するには?
クエリ点の lat と lon、経路の start_lat、start_lon、end_lat、end_lon を含む JSON を送信してください。レスポンスには符号付きの cross_track_m、absolute_m、side(left、right、on_track)が含まれます。