DMSから十進度への変換ツール
40° 26′ 46.8″ Nは40.446333333333になります。度に分÷60と秒÷3600を足し、符号は半球の文字だけで決めるので、南緯と西経はマイナスになります。紙の地図の数値化や宿題の確認に便利です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 度
- 40
- DMSの分の成分
- 26
- DMSの秒の成分
- 46.8
- 半球
- N
- 軸
- latitude
- 符号
- 1
- 十進度
- 40.4463333333
- 十進値
- 40.4463333333
符号は文字だけから決まります。紙の地図をデジタル化する地図製作者、宿題を確認する学生、gazetteerのDMS文字列を取り込むパイプラインは、どれも表計算ソフトを開かずに同じ決定的なルールを必要としています。処理は純粋な算術のみで、ネットワークも乱数シードも時計への依存もありません。
DMSと半球文字が符号付き十進度になる仕組み
紙の上の地理的な角度は、ほぼ常に非負の度・分・秒に1つの方位文字を続けて書かれます。北と東は正、南と西は負として扱われます。絶対的な大きさは標準的な六十進法の式で組み立てられます。
十進の大きさは、度に分を60で割った値と秒を3600で割った値を加えたものです。度を非負に保ち、符号を文字だけに任せることで、−40°を保存しながらSも付けてしまうという典型的な二重負号のバグを防げます。分と秒は0以上60以下の閉区間にあることが必須で、75分や負の秒のような値は、次の桁へ黙って繰り上がるのではなく拒否されます。
緯度にはNとS、経度にはEとWを使います。応答は axis も latitude または longitude として付記するため、クライアントは緯度パイプラインに誤ってEやWの文字が入っていないか確認できます。
実践のヒント、制限、関連する検索
クライアントを制御できる場合は、度・分・秒に数値を送るのがおすすめです。文字列の数値は厳密な有限数値パターンに一致する場合のみ受け付けられます。元の文字列の度の前にすでにマイナス記号が付いている場合は、このツールを呼ぶ前にマイナスを取り除き、SまたはWに対応付けてください。
そうすれば符号の唯一の正しい情報源は文字のまま保たれます。分と秒は0から60の範囲に保ってください。ロガーが75分を出力した場合は、黙った繰り上がりを期待せず、上流で正規化するか拒否してください。
教材の例は簡単です。 北緯40度26分46.8秒は約40.44の正の緯度になり、同じ数値にWを付けると負の経度になります。自由形式の文字列パーサーではなく、十進からDMSへの逆フォーマッターでも、UTMやgeohashの投影器でもありません。数値のDMS成分と明確な方位文字がすでにある場合にこの機能をお使いください。
元データが地図投影や単一の符号付き十進値の場合は、対応するgeoツールをご利用ください。
活用例
紙地図のDMSをGISの十進値へデジタル化
地図製作者は紙の図葉から度・分・秒とN/S/E/Wを入力し、符号付き十進の緯度・経度をGeoJSONやshapefileの属性に書き込みます。
よくある質問
DMSを十進度に変換するには?
大きさを D + M/60 + S/3600 として計算し、NまたはEなら+1、SまたはWなら−1を掛けます。
どの半球文字が使えますか?
N、S、E、Wです(大文字・小文字は問いません)。N/Sは緯度、E/Wは経度を示します。
度は負の値にできますか?
いいえ。 度は非負である必要があります。負の符号付き結果が必要な場合は半球のSまたはWを使い、符号は文字だけが担うようにしてください。
DMSから十進度への変換ツールは無料ですか?
ブラウザのツールは無料でローカル実行されます。失敗したタスクに課金されることはありません。
分や秒は必ず入力する必要がありますか?
いいえ、分と秒は省略でき、その場合は0として計算します。度と半球の文字だけを入れれば、整数の度をそのまま符号付きの十進度に変換できます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/dms-to-decimal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"degrees":40,"hemisphere":"N"}'const res = await fetch("https://api.kit.forhosting.com/geo/dms-to-decimal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"degrees": 40,
"hemisphere": "N"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/dms-to-decimal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"degrees": 40,
"hemisphere": "N"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/dms-to-decimal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"degrees":40,"hemisphere":"N"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"degrees":40,"hemisphere":"N"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/dms-to-decimal", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"degrees": 40,
"hemisphere": "N"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.dms_to_decimal",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs_degrees | 1000000000000 |
min_component | 0 |
max_minutes_seconds | 60 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
DMSから十進度への変換ツールは、測量や地図で使われる古典的な表記を、最新のGISやAPIが求める符号付き十進角に変換します。整数の度、任意の分・秒、そして半球文字(緯度ならNまたはS、経度ならEまたはW)を入力すると、ツールは符号付きの大きさ D + M/60 + S/3600 に等しい decimal_degrees を返します。分と秒は0から60までの閉区間に収める必要があり、範囲外の値は invalid_input で拒否されるため、誤った野帳が気づかないうちに誤った地点になることはありません。したがって、無料のブラウザ実行環境とプリペイドAPIは、固定の小数点以下12桁への丸めのあと、成功リクエスト1件あたり$0.002で呼び出すたびに同じJSONを返します。
DMSと半球文字が符号付き十進度になる仕組み
続いて半球文字がその大きさに、NまたはEなら+1を、SまたはWなら−1を掛け、WGS84の緯度・経度フィールドで使われる符号付き十進度の値を生成します。この厳格な範囲は、多くの野外機器や学校の教材が教える形式と一致しており、この機能が公開する invalid_input の契約とも一致しています。検証経路は、公開フィールドに使われるのと同じ固定の丸めで大きさと符号を再計算するため、成功した応答には常に、テストやレポートで検証できる手順が含まれます。
APIの呼び出し方と返ってくる内容
絶対的な度は公開された上限の1兆以内に収める必要があります。半球は大文字・小文字を問わず N、S、E、W を受け付けます。それ以外の文字列は検証に失敗します。必須の有限で非負の度(エイリアス d と deg)、必須の半球文字(エイリアス hemi、dir、direction、cardinal)、そして省略時に0になる任意の分・秒(エイリアス m、min、arcmin と s、sec、arcsec)を含むJSONボディを送信します。これにより、Workerとブラウザの両方でIEEE倍精度の中間積が有限に保たれます。成功時の応答は、丸められた度・分・秒をエコーし、hemisphere に正規化された大文字、axis に latitude または longitude、sign に+1または−1、decimal_degrees と decimal に同じ丸め済みの符号付き値、dms に文字付きのコンパクトな表示文字列、method に dms_hemisphere_to_decimal、formula に文書化された符号と六十進法の式、steps に置換行の順序付き配列を設定します。検証の失敗(フィールド欠落、非有限の数値、負の度、0〜60の範囲外の分・秒、未知の半球文字、非有限の変換後の大きさ)は invalid_input を返し、課金されることはありません。料金は成功リクエスト1件あたり一律$0.002で、単位は item、限界単価はゼロです。
実践のヒント、制限、関連する検索
表をデジタル化するときは、1回のリクエストに緯度と経度の両方を詰め込むのではなく、緯度に1回、経度に1回呼び出してください。この機能は一度に1つのDMS三つ組だけを変換します。75分は厳格な invalid_input の経路を示します。このページは、DMSから十進度への変換ツール、半球N S E Wの座標変換、度分秒から十進へのオンライン変換を探している方を対象としています。invalid_input を返す失敗タスクはプリペイド残高を消費しないため、学習者が意図的に範囲外の分を渡す探索的なスクリプトも安価に保てます。往復確認は簡単です。 D + M/60 + S/3600 を手計算し、半球の符号を適用して、Workerが使うのと同じ小数点以下12桁の丸めの範囲内で公開された decimal_degrees と一致することを確認してください。
連携の活用例
六十進法変換の宿題チェック
学生は手計算した D + M/60 + S/3600 の結果と半球の符号を、レポート提出前に決定的な decimal_degrees フィールドと照合します。
gazetteerフィード向けETL正規化
パイプラインはベンダーのDMS列と方位文字をジオコーディング前に符号付き十進値へ変換し、範囲外の分・秒には invalid_input の罠を設けます。
技術的な質問
分や秒が0〜60の範囲外だとどうなりますか?
リクエストは invalid_input で失敗します。分と秒は0以上60以下の閉区間にある必要があります。