目的地計算機
北緯51.4778°、西経0.0015°から方位45°で10000 m進むと、北緯51.5413472357°、東経0.100745643529°に着きます。距離はメートル、キロ、マイル、海里で入力でき、到着点と最終方位が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 緯度
- 51.4778
- 経度
- -0.0015
- 大圏の初期方位角
- 45
- 距離
- 10,000
- 正規化された方位角
- 45
- 距離の単位
- M
- 距離 m
- 10,000
- 地球半径 m
- 6,371,000
目的地計算機は、球面航海における直接問題に答えるツールです。現在地、出発時の真方位、移動距離が与えられたとき、どこに到達するでしょうか。このツールは、十進度の出発緯度・経度、真北から時計回りに測った初期方位角、そしてメートル・キロメートル・法定マイル・海里のいずれかの距離を受け取り、平均地球半径の球面上(または指定した任意の正の半径上)での大圏目的地を返します。式には初等三角法のみを使用します。度をラジアンに変換し、経路長を半径で割って角距離を求め、asin と atan2 による古典的な目的地の恒等式を評価し、経度をアンチメリディアン周辺の半開区間に正規化します。
大圏目的地の式の仕組み
地球を半径 R の球として扱います。デフォルトでは慣用的な平均半径である六百三十七万一千メートルです。出発緯度 φ1 と経度 λ1 を度からラジアンに変換します。
初期方位角 θ も同様に変換します。これは真北から時計回りに測り、ゼロが真北、九十が真東、百八十が真南、二百七十が真西を表します。必要に応じて移動距離をメートルに換算し、角距離 δ を d ÷ R のラジアンとして求めます。
目的地の緯度は、sin φ1 × cos δ + cos φ1 × sin δ × cos θ の逆正弦です。目的地の経度は、λ1 に二変数逆正接(sin θ × sin δ × cos φ1 を cos δ − sin φ1 × sin φ2 で割った値)を加えたもので、航路が子午線や極を横切っても正しい象限が保たれます。
φ2 と λ2 を度に戻した後、緯度は逆正弦によりマイナス九十からプラス九十に自然に制限され、経度はマイナス百八十からプラス百八十の範囲に折りたたまれるため、地図レイヤーや GIS ツールは二度目の正規化なしに点を描画できます。距離ゼロの場合は、明確に定義された最終方位とともに出発点が返されます。
地球を何周もする距離も球面上では数学的に有効ですが、高精度測量で使われる楕円体測地線とは一致しない場合があります。パイプライン全体は決定的な浮動小数点演算であり、乱数シード、時刻タイムスタンプ、ネットワーク呼び出し、モデルのドリフトはありません。
送信する内容と返ってくる内容
緯度は北を正としてマイナス九十からプラス九十度の閉区間内になければなりません。経度は東を正としてマイナス百八十からプラス百八十度の閉区間内になければなりません。方位角は大圏の初期方位(度)です。
ゼロから三百六十の範囲外の値も有限であれば受理され、計算とレポートのためにその半開区間に正規化されます。距離は選択した単位でゼロ以上でなければなりません。別の惑星や教科書の半径をモデル化する場合に便利です。
古典的なチェックとして、グリニッジ付近の北緯五十一点四七七八・西経零点零零一五から、四十五度の方位で一万メートル進み、目的地が出発点の北東にあることを確認する方法があります。無料のブラウザフォームは授業デモや現場ブリーフィングに活用し、大量の経路区間や回帰フィクスチャが必要なときはスクリプトから同一のコントラクトを呼び出してください。
目的地計算機が実務で登場する場面
航空・海事の訓練では、等角航路と大圏航路の演習が絶えず課され、受講者はチャート用分度器なしで出発点・真方位・距離から目的地の緯度経度を返す信頼できるオラクルを必要としています。GIS や物流のチームは、本格的な楕円体ライブラリを導入する前に、デポから方位に沿って進みながら、ジオフェンスの中心、サービス半径、回廊の終点を試作します。
捜索救助の計画、ハイキングガイド、オリエンテーリングのカリキュラムでは、既知の登山口から方位と距離を投影してウェイポイントを構築します。ゲームやシミュレーションのエンジンは、同じ閉形式を使って球面世界にエンティティを配置するため、重い測地パッケージを同梱せずにクライアントとサーバーの整合を保てます。
オフラインのワークシートとオンラインの自動採点の一貫性を保つためです。後で二点間の距離と方位を求める逆問題、等角航法、楕円体上の完全な WGS84 Vincenty 測地線が必要になった場合は、この球面目的地ページに詰め込むのではなく、別の検索意図とランディングページとして扱ってください。
活用例
航海訓練と試験の解答
出発点・真方位・距離から大圏区間の目的地緯度経度を生成し、教官と自動採点が同一の正解データを共有できます。
GIS のサービス半径と回廊の終点
デポの方位と到達圏を座標ペアに投影し、本格的な測地スタックなしでジオフェンス、配送回廊、地図プロトタイプを作成できます。
捜索パターンとウェイポイント連鎖
連続する方位に沿って一定距離ずつ進み、SAR グリッド、ハイキングルート、シミュレーションの出現リング用に順次ウェイポイントを構築します。
よくある質問
この目的地計算機はどんな式を使いますか?
球面大圏の直接公式です。角距離 δ = d/R、φ2 = asin(sinφ1·cosδ + cosφ1·sinδ·cosθ)、λ2 = λ1 + atan2(sinθ·sinδ·cosφ1, cosδ − sinφ1·sinφ2) で、経度は (−180, 180] に正規化されます。
距離が負の場合はどうなりますか?
移動距離はゼロ以上でなければなりません。逆向きの移動は負の距離ではなく、方位に 180° を加えてモデル化します。
距離にはどの単位が使えますか?
メートル(m、デフォルト)、キロメートル(km)、法定マイル(mi)、海里(nmi)です。値は球半径で割る前にメートルへ換算されます。
これは WGS84 楕円体の Vincenty ですか?
楕円体上の高精度測量には、専用の測地ライブラリと別のランディングページをご利用ください。
地球以外の半径でも計算できますか?
できます。初期値は平均地球半径の6371000メートルですが、教科書の値やほかの惑星の半径など、正の値なら自由に指定できます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/destination-point \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":51.4778,"longitude":-0.0015,"bearing":45,"distance":10000}'const res = await fetch("https://api.kit.forhosting.com/geo/destination-point", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 51.4778,
"longitude": -0.0015,
"bearing": 45,
"distance": 10000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/destination-point",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 51.4778,
"longitude": -0.0015,
"bearing": 45,
"distance": 10000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/destination-point", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":51.4778,"longitude":-0.0015,"bearing":45,"distance":10000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":51.4778,"longitude":-0.0015,"bearing":45,"distance":10000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/destination-point", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"latitude": 51.4778,
"longitude": -0.0015,
"bearing": 45,
"distance": 10000
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.destination_point",
"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 メッセージで失敗します。
送信する内容と返ってくる内容
latitude、longitude、bearing、distance の各フィールドに、必須の有限数を四つ送信します。負の移動距離は invalid_input で拒否され、課金されません。必要に応じて distance_unit を m、km、mi、nmi(デフォルトはメートル)に、earth_radius_m を任意の有限の正の球半径に設定できます。成功時のレスポンスには、クリーンアップされた入力、正規化された方位角、メートル換算の距離、使用した半径、度単位の角距離、緯度と経度を持つ destination オブジェクト、円弧の到達端での final_bearing、メソッドタグ great_circle_spherical、ドキュメント用の簡潔な式文字列が含まれます。成功した API 呼び出しの料金は公開基準の $0.002/件で、バリデーション失敗はプリペイド残高を消費しません。
目的地計算機が実務で登場する場面
この機能は純粋な parse エンジンなので、API 料金は公開基準の $0.002/成功件数で、バリデーション失敗は残高を消費しません。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカルに動作します。API リクエストはプリペイドの KIT 残高から $0.002/成功件数で課金され、無効な入力は課金されません。