方位角と距離から緯度・経度の目的地を計算
緯度51.4778、経度−0.0015から方位角45°で10 km進むと、到着地点はおよそ緯度51.5413472357、経度0.1007456435です。距離はメートル、キロメートル、マイル、海里で指定できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 緯度
- 51.4778
- 経度
- -0.0015
- 方位
- 45
- 距離
- 10
- 距離の単位
- Km
- 初期方位
- 45
- 距離 (m)
- 10,000
- 地球の半径 (m)
- 6,371,000
この計算ツールは、球体として扱った地球上で、方位角と距離から目的地点を求める航法の順問題を解きます。出発地点の緯度と経度、真北から時計回りに測った初期方位角、0以上の移動距離をご入力ください。経路長を角距離に換算し、大圏航路の三角関数式を適用して、正規化した到着座標を返します。メートル、キロメートル、法定マイル、海里に対応し、教材用模型や別の天体では球の半径も指定できます。
有効な出発地点、方位角、距離をご入力ください
まず、出発地点の緯度と経度を十進度でご入力ください。緯度はマイナス九十度からプラス九十度まで、経度はマイナス百八十度からプラス百八十度までにする必要があります。緯度の正値は北、経度の正値は東を示します。
初期方位角は真北から時計回りの度数で指定します。ゼロ度は北、九十度は東、百八十度は南、二百七十度は西です。一周を超える有限値も受け付け、ゼロ以上三百六十未満へ正規化します。
そのため、四百五度と四十五度は同じ初期方向を表します。距離には0以上の値をご指定ください。単位は、メートルの m、キロメートルの km、法定マイルの mi、海里の nmi から選べます。
省略時は km です。 これらの検証により、もっともらしい誤座標を防ぎます。負の距離、無限値、座標の欠落、極を越えた緯度には入力エラーを返します。通常の地球計算では既定の平均半径をご利用ください。
授業、シミュレーション、仕様で別の球体が明示される場合に限り、正の半径を設定してください。
球面三角法による計算方法をご確認ください
この処理では、球の中心を通る平面と球面との交線である大圏に沿って移動するとみなします。最初に、出発緯度、出発経度、正規化済み方位角を度からラジアンへ変換します。次に距離をメートルへ換算し、球の半径で割って経路の角距離を求めます。
到着緯度は、出発緯度、角距離、初期方位角の余弦を組み合わせた逆正弦の式から得ます。到着経度は、出発経度に atan2 の式を加えて求めます。atan2 を使うため、子午線へ近づく場合、日付変更線を横切る場合、極へ向かう場合でも象限を正しく保てます。
逆正弦の前には浮動小数点による微小な範囲超過を抑え、最後に経度をマイナス百八十度以上プラス百八十度未満へ収めます。応答には正規化済み初期方位角、メートル換算距離、使用半径、計算法名も含まれます。通信、乱数、時刻、可変状態を使わないため、同じ入力から常に同じ結果を得られます。
結果を読み取り、目的に合うモデルをお選びください
destination オブジェクトは十進度の緯度と経度を示し、地図マーカー、経路プレビュー、テストデータ、次の航法計算にそのまま利用できます。距離が0の場合は、経度を正規化したうえで出発座標を返します。日付変更線を横切る経路も、通常の範囲外の経度を返さず正しく折り返します。
初期方位角は出発時の方向です。多くの大圏航路では移動に伴って方向が変化するため、一定方位の針路や到着時の方位角とは異なります。高緯度や長距離では、この違いが特に重要です。
球面解法は、教育、概略計画、可視化、ゲーム、シミュレーション、平均地球半径を仕様とするシステムに適しています。一方、測量、法的境界、高精度航空、保安上重要な作業でセンチメートルまたはメートル単位の精度が必要な場合は、楕円体測地線ソルバーの代用にはなりません。地球は完全な球ではなく、経路の形状や長さによって差が生じます。
全行程で同じ方位を維持する経路には航程線計算をご使用ください。複数区間を連結する場合は、返された到着地点を次の出発地点とし、区間ごとの新しい初期方位角を指定します。半径と単位の規約を統一すると、結果の一貫性と監査可能性を維持できます。
活用例
予測した地図マーカーの作成
倉庫、センサー、目印、イベント地点から、既知の大圏距離と初期方向に地図マーカーを配置できます。
航法演習問題の準備
方位角、角距離、日付変更線、球面幾何学を扱う授業向けに、再現可能な解答を作成できます。
球面上の移動シミュレーション
大規模な測地ライブラリやネットワーク要求を追加せず、球体上で物体を移動できます。
よくある質問
方位角はどのように測りますか?
真北から時計回りに測った初期方向を度数で指定します。有限値は0以上360未満へ正規化されます。
どの距離単位を利用できますか?
メートルは m、キロメートルは km、法定マイルは mi、海里は nmi をご使用ください。既定値は km です。
地球楕円体モデルを使用しますか?
いいえ。 既定の平均地球半径 6,371,000 メートルを用いる球面大圏三角法で計算します。
日付変更線を越えるとどうなりますか?
計算した経度を、標準的な地図範囲である -180 度以上 180 度未満へ正規化します。
方位角45度で10 km先の地点はどう求めますか?
出発地点の座標、方位角、距離を入力します。緯度51.4778、経度−0.0015から真北を基準に45度の向きへ10 km進むと、およそ緯度51.5413472357、経度0.1007456435に着きます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/destination-point-bearing \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":51.4778,"longitude":-0.0015,"bearing":45,"distance":10}'const res = await fetch("https://api.kit.forhosting.com/trig/destination-point-bearing", {
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": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/destination-point-bearing",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 51.4778,
"longitude": -0.0015,
"bearing": 45,
"distance": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/destination-point-bearing", 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":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":51.4778,"longitude":-0.0015,"bearing":45,"distance":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/destination-point-bearing", 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": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.destination_point_bearing",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
計算はローカルかつ決定論的で、再現可能な API 処理にも適しています。
球面三角法による計算方法をご確認ください
返却座標は安定した JSON にするため小数点以下十桁に丸めますが、球モデルに測量級の精度があることを意味しません。API の1項目は $0.002 で、ブラウザーでも同じ純粋計算を実行します。
技術的な質問
API 計算の料金はいくらですか?
正常に処理された API の各項目には、公開基本料金 $0.002 が適用されます。