地理座標のラジアンを度に変換
地理情報ソフトウェアでは、三角関数の計算に適しているため、緯度と経度をラジアンで保存することがあります。一方、人が読む地図や報告書、一般的な座標欄では十進度のほうが分かりやすい形式です。この変換ツールは、地理座標に 180 を掛けて pi で割り、ラジアンから度へ変換します。値が緯度か経度かを指定すると、選択した軸の有効範囲内に結果が収まるかも確認します。
無料で実行
地理座標を正しく変換する方法
元データに記録されているラジアン値をそのまま数値で入力し、緯度または経度を選択してください。変換には、度 = ラジアン × 180 / pi という標準式を使用します。この関係により、pi ラジアンは 180 度、pi を 2 で割った値は 90 度になり、ゼロはどちらの単位でもゼロのままです。軸の選択は表示上の指定ではなく、値の検証に使われます。緯度の範囲は -pi/2 から pi/2 までで、南緯 90 度から北緯 90 度に相当します。経度の範囲は -pi から pi までで、西経 180 度から東経 180 度に相当します。選択した範囲を外れる値は、実在しない座標をもっともらしく返さないように拒否されます。応答には正規化した軸、入力したラジアン値、変換後の十進度、使用した式が含まれるため、確認や次の決定的な処理へ渡す際にも便利です。
符号、軸、境界値の意味
変換後も入力値の符号は維持されます。緯度では通常、正の結果が北、負の結果が南を表します。経度では、正が東、負が西を表します。この機能は半球を示す文字を追加せず、符号付きの数値を返すため、一般的な十進座標欄や地理データ形式にそのまま利用できます。境界値も有効です。緯度では正負の pi/2、経度では正負の pi を入力できます。JavaScript が負のゼロとして保持する場合でも、結果は通常のゼロに整えます。受け付ける値は有限の JSON 数値だけです。未指定、文字列、無限大、NaN は拒否し、上流のデータ不良が誤解を招く位置情報へ変わることを防ぎます。半球ではなく、対象フィールドの軸を選択してください。たとえば西側の座標も経度であり、負の符号が西を表します。南側の座標も同様に、負の緯度として扱います。
地図とデータ処理で結果を利用する方法
ラジアンは、航法計算、空間ライブラリ、科学モデル、テレメトリー、アプリケーションから書き出した状態データなどでよく使われます。場所の表示、地図フォームへの入力、GeoJSON 形式の座標配列、ログの確認、一般的な GPS 座標との比較には、通常は十進度が適しています。緯度と経度は別々に変換し、軸名も保持してください。会話では緯度を先に述べることが多い一方、多くのデータ形式では経度を先に並べるためです。この処理で変わるのは角度の単位だけです。測地基準系、投影法、座標参照系、高度、元の測定精度、物理的な場所は変更しません。範囲外の経度を折り返したり、無効な緯度を上限へ丸めたりもしません。そのような補正は誤ったデータを隠すおそれがあるためです。計算は決定的で、ネットワーク、保存領域、乱数、現在時刻を使いません。ブラウザーですぐ確認でき、API では1件あたり $0.002 で同じ変換を自動化できます。
活用例
地図用の座標を準備
計算で得た緯度と経度のラジアン値を、一般的な地図や入力欄で使える十進度へ変換します。
テレメトリー出力を正規化
符号付き角度を変換し、指定した座標軸の地理的範囲を超える値を拒否します。
航法計算を検証
途中結果のラジアン値を読みやすい度で示し、既知の GPS 座標と比較できるようにします。
よくある質問
どの変換式を使用しますか?
プラットフォームの決定的な倍精度 pi 値を使い、度 = ラジアン × 180 / pi を計算します。
緯度または経度の選択が必要なのはなぜですか?
検証範囲が異なるためです。緯度は -pi/2 から pi/2、経度は -pi から pi までです。
負のラジアン値も利用できますか?
はい。符号は維持され、通常は負の緯度が南、負の経度が西を表します。
座標参照系も変更されますか?
いいえ。変更するのは角度単位だけで、測地基準系、投影法、高度、物理的な場所は変わりません。
API での変換料金はいくらですか?
1件の変換につき $0.002 です。ブラウザー版はこのページから直接ご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/coordinate-radians-to-degrees \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":0.7105724077059474,"axis":"latitude"}'const res = await fetch("https://api.kit.forhosting.com/geo/coordinate-radians-to-degrees", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 0.7105724077059474,
"axis": "latitude"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/coordinate-radians-to-degrees",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 0.7105724077059474,
"axis": "latitude"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/coordinate-radians-to-degrees", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":0.7105724077059474,"axis":"latitude"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":0.7105724077059474,"axis":"latitude"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/coordinate-radians-to-degrees", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": 0.7105724077059474,
"axis": "latitude"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.coordinate_radians_to_degrees",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |