次のウェイポイントETA計算
方位76°の区間を時速25 kmで進む場合、37.7749, -122.4194の位置からウェイポイント37.8044, -122.2712までは13.43 kmで、約32分14秒で着きます。ウェイポイントに向かう速度の成分だけを使います。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 現在の緯度
- 37.7749
- 現在の経度
- -122.4194
- 経由地の緯度
- 37.8044
- 経由地の経度
- -122.2712
- 方位 (度)
- 76
- 速度
- 25
- 残り距離
- 13.43
- 距離 (m)
- 13,429.644
- ウェイポイントの方位 (°)
- 75.817
- ルートの方位 (°)
- 76
次のウェイポイントETA計算ツールは、1回の航法位置情報を実用的な進捗推定に変換します。現在の緯度・経度、次のウェイポイントの座標、現在のルート区間で進んでいる方位、速度をご入力ください。大圏距離と目的地方位を求め、距離を実際に縮める速度成分だけを使って所要時間を算出します。結果には残距離、方位誤差、接近速度、秒・分単位のETA、読みやすい所要時間が含まれます。ライブ地図、交通、天候、ネットワーク、現在時刻には依存しません。
ウェイポイントまでの推定値が表すもの
ウェイポイントETAは、方向を無視して直線距離を全速度で割るのではなく、実際に進んでいる区間上の接近度を表すときに役立ちます。本ツールは、現在地と次の地点を十進度の座標として受け取ります。IUGG平均地球半径とハーサイン公式を使い、球面上の最短距離を計算します。
次に、現在地から地点へ向かう初期真方位を求めます。正の値なら地点は進行方向の右側、負の値なら左側です。速度は、この誤差の余弦によって目的地方向へ射影されます。
そのため、地点へ直進していれば全速度が使われ、斜めに進んでいれば接近速度が下がってETAが長くなります。すでに地点にいる場合、距離とETAはゼロです。方位が直角または目的地から離れる方向の場合は、誤解を招く負値や無限大のETAを返さず、入力エラーとして拒否します。
ルート位置の入力方法と結果の読み方
緯度は赤道より南が負、北が正で、経度はグリニッジより西が負、東が正です。座標範囲を検証し、日付変更線付近では経度差を正規化するため、180度近くの短い区間が地球をほぼ一周する距離になることはありません。ゼロと360は真北、90は東、180は南、270は西です。
speedは必ず正の値にしてください。たとえば船舶計器がノットを出力しても海里で報告でき、テレメトリーがメートル毎秒でもキロメートル表示ができます。precisionでは内部計算を変えず、数値出力の小数桁をゼロから9まで指定します。
ETAは総速度ではなく接近速度で距離を割って算出します。方位誤差が60度なら、距離を縮める速度は半分だけになり、瞬間ETAは直進時のおよそ2倍です。
瞬間ETAの限界と安全な運用方法
この出力は説明可能な瞬間値として扱い、曲がり角ごとの案内や到着保証には使用しないでください。現在の方位と速度を維持しながら大圏距離が縮むと仮定しています。後続区間の形状、立入制限、潮流、風、交通、上昇経路、地形、停止、加速は考慮しません。
また、楕円体測地線ではなく球体地球モデルを用います。短時間の区間監視や再現可能な自動処理には適していますが、認証済み航法装置の代わりにはなりません。曲線経路や意図的にずれた経路では、新しい位置を得るたびに再計算し、方位誤差と接近速度を最新の動きに合わせてください。
指定ポリラインに沿う必要がある場合、その残長は別途計算してください。本機能は現在地から地点までの表面距離を測り、入力方位によって時間を調整します。接近しない方位を拒否することで、逆向きの経路、古い地点、入れ替わった座標、待機旋回などを、もっともらしい到着時刻が表示される前に発見できます。
GPSが不安定な場合は、位置・方位・速度を平滑化するか、複数の整合する測定を確認してください。決定論的な応答は、地図事業者への接続なしでダッシュボード、進捗通知、シミュレーター、回帰試験に利用できます。入力は保存されず、位置情報の取得も時計の参照も行いません。
所要時間を分離することで、タイムゾーンや端末時計の差による計算の変化を防げます。
活用例
海上ルート区間の監視
船の位置、現在の地点、方位、ノット単位の速度から、残りの海里と瞬間ETAを算出します。
車両テレメトリーダッシュボード
定期的な位置・方位メッセージを、更新ごとの地図照会なしで再現可能な進捗データへ変換します。
航法シミュレーション試験
表示装置や追従演習向けに、距離、方位誤差、接近速度、ETAの安定したテスト値を作成します。
よくある質問
次のウェイポイントまでのETAはどのように計算しますか?
大圏距離と初期方位を求め、その方向へ速度を射影し、正の接近速度で距離を割って算出します。
方位によってETAが変わるのはなぜですか?
地点へ向かう動きだけが距離を縮めるためです。斜めの進路では、同じ速度で直進する場合より接近速度が小さくなります。
地図、交通、風、潮流を利用しますか?
いいえ。 ご入力の座標、方位、速度、単位、精度だけを使う決定論的な球面幾何計算です。
進路がウェイポイントから離れている場合はどうなりますか?
方位がウェイポイントに対して直角か、反対を向いている場合は、距離を縮める速度がありません。その場合はマイナスや無限の到着時間を示さず、推定を行いません。
速度と距離の単位は何を選べますか?
速度は時速キロメートル、時速マイル、ノット、秒速メートルから選べます。残り距離はメートル、キロメートル、マイル、海里から別々に選べるので、ノットで入力して海里で表示することもできます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/next-waypoint-eta \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_lat":37.7749,"current_lon":-122.4194,"waypoint_lat":37.8044,"waypoint_lon":-122.2712,"bearing_deg":76,"speed":25}'const res = await fetch("https://api.kit.forhosting.com/geo/next-waypoint-eta", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_lat": 37.7749,
"current_lon": -122.4194,
"waypoint_lat": 37.8044,
"waypoint_lon": -122.2712,
"bearing_deg": 76,
"speed": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/next-waypoint-eta",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_lat": 37.7749,
"current_lon": -122.4194,
"waypoint_lat": 37.8044,
"waypoint_lon": -122.2712,
"bearing_deg": 76,
"speed": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/next-waypoint-eta", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_lat":37.7749,"current_lon":-122.4194,"waypoint_lat":37.8044,"waypoint_lon":-122.2712,"bearing_deg":76,"speed":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_lat":37.7749,"current_lon":-122.4194,"waypoint_lat":37.8044,"waypoint_lon":-122.2712,"bearing_deg":76,"speed":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/next-waypoint-eta", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"current_lat": 37.7749,
"current_lon": -122.4194,
"waypoint_lat": 37.8044,
"waypoint_lon": -122.2712,
"bearing_deg": 76,
"speed": 25
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.next_waypoint_eta",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
latitude_min | -90 |
latitude_max | 90 |
longitude_min | -180 |
longitude_max | 180 |
speed_max_mps | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ウェイポイントまでの推定値が表すもの
入力されたbearing_degは、真北から時計回りに測った現在のルート区間の方位として扱われます。2つの方向の符号付き差はcourse_error_degで返されます。応答には、選択単位のdistance_remaining、明確なdistance_m、両方の方位、closing_speed_mps、eta_seconds、eta_minutes、eta_formattedが含まれます。これは1回の測位に基づく瞬間推定であり、その後の旋回や速度変化を予測するものではありません。
ルート位置の入力方法と結果の読み方
現在のGPS位置にはcurrent_latとcurrent_lon、次のルート地点にはwaypoint_latとwaypoint_lonをご使用ください。bearing_degにはゼロから360までをご入力ください。speed_unitはkm/h、mph、kn、m/sから選び、distance_unitは独立してm、km、mi、nmiから選べます。eta_formattedは最も近い整数秒に丸め、eta_secondsとeta_minutesはソフトウェア向けに指定精度を保ちます。受理された結果は無料のブラウザー実行と、成功1回あたり$0.002のAPIで同じように再現できます。
瞬間ETAの限界と安全な運用方法
到着時刻が必要な場合は、アプリ側で信頼できる時刻にeta_secondsを加算してください。
技術的な質問
方位がウェイポイントから離れる場合はどうなりますか?
直角または遠ざかる動きには正の接近速度と有限の瞬間ETAがないため、invalid_inputを返します。
到着する時計時刻も計算できますか?
いいえ。時計を参照せず残り時間を返します。必要ならアプリ側で信頼できる時刻にeta_secondsを加算してください。
API計算の料金はいくらですか?
成功したAPIリクエスト1回につき$0.002です。同じ決定論的計算をブラウザーでは無料で利用できます。