初期方位角の計算ツール
ロンドンからパリへ大圏航路で向かうときの初期方位は148.115617°で、16方位ではSSEです。出発地と目的地を10進数の度で入力すると、矢印や方位線として描ける向きが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- Lat1
- 51.5074
- Lng1
- -0.1278
- Lat2
- 48.8566
- Lng2
- 2.3522
- 方位
- 148.115617 deg
- 方角
- SSE
地球上のある地点から別の地点への方位を知りたいとき、その答えとなるのが初期方位角です。これは大圏航路が起点を離れる瞬間の前方方位角を指します。この計算ツールは、緯度と経度を十進度で表した 2 組の座標を受け取り、真北から時計回りに測った 0〜360 度の範囲の単一の方位を返します。ナビゲーションライブラリーが依拠する標準的な球面公式を用いるため、結果は決定的でネットワーク参照を伴わず、経路計画、地図注記、測量メモ、そして毎回同じ数値で一致しなければならない自動パイプラインに適しています。
初期方位角の意味(そして意味しないこと)
初期方位角は前方方位角とも呼ばれ、球面上で地点 A から地点 B へ向かう最短経路に沿って歩き始める、あるいは飛び始めるときに、コンパスを合わせる角度です。0 度は真北、90 度は真東、180 度は真南、270 度は真西を意味します。
地球は湾曲しているため、この方位は旅の始まりでのみ正しく、大圏に沿って進むにつれて測地線上にとどまるために必要な現地のコンパス方位は通常変化します。最終方位角(目的地での逆方位角)は別の数値であり、距離はさらに別の計算です。本ツールはあえて前方の問いだけに答えるため、契約は単純に保たれます。
4 つの座標を入力し、1 つの方位を出力します。両地点が同じ位置の場合、数学的な atan2 の特異点は 0 に解決され、これは未定義の方位ではなく同一の端点に対する安定した規約です。
この公式が実システムのどこで使われるか
物流ソフトウェアは倉庫と立ち寄り先の間に矢印を描き、ドローンの地上局は次の経由地への方位を表示し、測量アプリは基準点から目標への方向を注記し、ゲームの地図はクエスト目的地に向けてマーカーを向けます。これらの流れはいずれも、外部のジオコーダーを呼ばずに再現可能な方位角を必要とします。ここでのアルゴリズムは古典的な球面三角法の恒等式です。
度をラジアンに変換し、緯度と経度の差の正弦と余弦で東成分と北成分を作り、それらの成分の atan2 を取って結果を 0〜360 に折り返します。球面地球を仮定しており、これは数多くのオープンソースの大圏補助関数が用いるのと同じ近似で、数千キロメートル以下のほとんどの計画作業に十分な精度です。
法的な地籍作業やセンチメートル級の測量には楕円体測地線ライブラリーを使うべきですが、日常の経路探索、地図 UI、教育ツールには、この閉形式が適切な折り合いです。
活用例
経路と経由地の方向付け
連続する GPS 測位間の出発方位を計算し、地図 UI やナビゲーション帯が計画した測地線に一致する方向矢印を描けるようにします。
物流と現場派遣
本格的なターンバイターンエンジンなしに、拠点から配送先や作業現場への真北基準の方位を運転手や現場チームに提供します。
測量メモと地図注記
基準点から目印への前方方位角を、機器をまたいで決定的であり続けるフォームや表計算のパイプラインに記録します。
よくある質問
初期方位角とは何ですか?
最初の座標を離れて 2 番目に向かう大圏航路の、真北から時計回りに測った度数での前方コンパス方位です。
結果は磁北ですか、真北ですか?
真北です。 この計算ツールは磁気偏角を適用しません。磁気コンパスの読みが必要な場合は、ご自身で現地の偏差表を適用してください。
方位は経路全体で一定に保たれますか?
通常は一定ではありません。初期方位角はあくまで出発時の方位角です。球面上では大圏に沿った現地の方位は一般に変化します。到着方位が必要なら目的地での最終方位角をお使いください。
どの座標形式を受け付けますか?
度分秒やプラスコードは解析されないため、先に変換してください。
2つの地点が同じ場合、方位はいくつになりますか?
0になります。同じ地点どうしには進む方向がないため、方位が決まらない状態にせず、安定した決まりとして0°を返します。思いがけず0が出たときは入力を見直してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/bearing \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat1":51.5074,"lng1":-0.1278,"lat2":48.8566,"lng2":2.3522}'const res = await fetch("https://api.kit.forhosting.com/geo/bearing", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat1": 51.5074,
"lng1": -0.1278,
"lat2": 48.8566,
"lng2": 2.3522
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/bearing",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat1": 51.5074,
"lng1": -0.1278,
"lat2": 48.8566,
"lng2": 2.3522
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/bearing", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat1":51.5074,"lng1":-0.1278,"lat2":48.8566,"lng2":2.3522}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat1":51.5074,"lng1":-0.1278,"lat2":48.8566,"lng2":2.3522}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/bearing", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"lat1": 51.5074,
"lng1": -0.1278,
"lat2": 48.8566,
"lng2": 2.3522
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
初期方位角の意味(そして意味しないこと)
値は常に 0 以上 360 未満の半開区間に正規化され、これはほとんどの GIS システムや API が方位角を表す方法と一致します。
座標の渡し方と結果の読み方
緯度は −90 から 90 の間、経度は −180 から 180 の間でなければなりません。正の緯度は赤道より北、正の経度は本初子午線より東を表します。地図、方位線、機器の向きに精度が必要なときは数値の方位を、表示だけには方位ラベルをお使いください。起点には lat1 と lng1、目的地には lat2 と lng2 を、それぞれ十進度の有限な数値として渡します。応答には、安定した自動処理のために小数点以下 6 桁に丸めた bearing、deg に設定された unit フィールド、リクエストを監査できるよう from と to の地点のエコー、そして N、NE、WSW といった人が読みやすい要約向けの 16 方位の方位ラベルが含まれます。演算は純粋で副作用がないため、無料のブラウザー経路と有料の API 経路は同じ入力に対して同じ JSON を返します。不正または欠落したパラメーターは invalid_input で失敗し課金されないため、多数の経由地を確定する前にフォームを安価に検証できます。
この公式が実システムのどこで使われるか
API 呼び出しはプリペイド残高で 1 件あたり $0.002 で課金され、アカウント不要のオフラインまたはブラウザー実行でも同じ契約が利用できます。
技術的な質問
API の費用はいくらですか。
成功リクエストごとに、公開された基本価格 $0.002 がプリペイド KIT 残高から課金されます。不正な入力は課金されません。ブラウザーツールは同じ純粋な演算をアカウントなしでローカル実行できます。