中心角から地球の弧長を計算
この計算機は、度で与えた中心角を球形の地球モデル上の大円距離へ変換します。球の中心で測った角度とメートル単位の半径を入力してください。度をラジアンへ変換し、s = r × theta を適用して、弧長をメートルとキロメートルで返します。平均地球半径のほか、用途に合う任意の球半径を明示して計算できます。
無料で実行
中心角と球半径を指定します
中心角とは、球の中心から弧の両端へ伸びる2本の半径がなす角です。central_angle_deg に入力してください。0度は距離なし、90度は円周の4分の1、180度は対蹠点、360度は一周を表します。次に radius_m へ球モデルの半径をメートルで入力します。一般的な概算には平均地球半径 6,371,008.8 メートルを利用できますが、この項目を必須にすることで採用した基準が明確になります。赤道半径、極半径、正積半径、プロジェクト固有の半径も指定できます。角度とともに半径を保存すれば、暗黙の仮定を避け、同じ結果を再現できます。両方の値は同一の幾何モデルに基づく必要があります。座標、楕円体、標高、天体名から半径を推測する機能はありません。
大円の弧長を求める仕組みです
使用する式は s = r × theta です。s は弧長、r は半径、theta はラジアン単位の中心角を示します。入力は度なので、まず central_angle_deg に pi を掛けて180で割り、その値に radius_m を掛けます。数値積分、経路検索、地図投影、通信は不要です。結果には central_angle_deg と radius_m が保持され、central_angle_rad、arc_length_m、arc_length_km も表示されます。計算値は毎回同じ表現になるよう小数点以下9桁に丸めます。この式は線形であり、角度または半径を2倍にすると距離も2倍になります。180度なら半径の pi 倍、360度なら半径の2 × pi 倍となり、球の全周に一致するため、簡単に検算できます。
球面距離として結果を解釈します
返される長さは、指定した中心角に対応する大円上の距離です。0度から180度までは2点間の短い側の距離を表せます。180度を超える値は、必要に応じて長い側の補弧を表します。座標から自動的に最短測地線を選ぶ計算機とは異なり、本機能は入力された角度をそのまま尊重します。結果は楕円体上の測地線ではなく、地球の扁平、地形、道路、海流、経路制限を考慮しません。そのため、採用する地球半径によって距離は少し変わります。資料が定める半径を使用し、結果と一緒に記録してください。測量や高精度航法には、座標と測地基準系を指定する楕円体方式が適しています。教育、全球規模の概算、既知の角距離の換算には、この直接的な計算が分かりやすく有用です。
活用例
角距離をキロメートルへ換算します
既知の地心角を、明示した地球半径に基づく表面距離へ変換できます。
球面航法の計算を検算します
別の方法で中心角が得られている場合に、大円距離を独立して確認できます。
ラジアンと弧長を説明します
度からの換算と s = r × theta が角度と地球上の距離を結ぶことを示せます。
よくある質問
API の利用料金はいくらですか?
API は1回 $0.002 です。ブラウザー版は端末内で無料で実行できます。
どの地球半径を使えばよいですか?
資料で指定された値をご利用ください。一般的な概算には IUGG 平均半径 6,371,008.8 メートルが適します。
なぜ角度をラジアンへ変換するのですか?
s = r × theta は theta がラジアンであることを前提とするためです。度から自動変換します。
中心角は180度を超えてもよいですか?
はい。360度まで指定でき、180度を超える値は長い側の弧を表します。
楕円体としての地球距離を計算しますか?
いいえ。指定された半径を持つ球の上で距離を計算します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/arc-length-from-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"central_angle_deg":90,"radius_m":6371008.8}'const res = await fetch("https://api.kit.forhosting.com/geo/arc-length-from-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"central_angle_deg": 90,
"radius_m": 6371008.8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/arc-length-from-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"central_angle_deg": 90,
"radius_m": 6371008.8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/arc-length-from-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"central_angle_deg":90,"radius_m":6371008.8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"central_angle_deg":90,"radius_m":6371008.8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/arc-length-from-angle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"central_angle_deg": 90,
"radius_m": 6371008.8
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.arc_length_from_angle",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |