座標をOSGBグリッド参照に変換
英国ナショナルグリッドのeasting(東距)とnorthing(北距)を、英国の地図、現地調査記録、位置情報データで広く使われる2文字のOSGBグリッド参照へ変換します。各座標に残す桁数を選択でき、100キロメートル四方から1メートル四方まで用途に合う範囲を表せます。標準の区画文字を算出し、座標の数字を正しく切り捨てるため、外部の地図サービスを使わずにTQ 300 800のような読みやすい参照を生成できます。
無料で実行
正しい座標系の値をご入力ください
英国ナショナルグリッド上のeastingとnorthingをメートル単位でご入力ください。eastingはグリッド原点から東方向への距離、northingは北方向への距離を表します。これらは経度・緯度ではなく、本ツールが座標系を推測したり変換したりすることもありません。変換前に、データの出典でBritish National Grid、OSGB、またはEPSG:27700と明記されていることをご確認ください。別の投影法による数値でも妥当に見えるグリッド参照が生成される場合がありますが、示す場所は誤っています。eastingは0以上700000未満、northingは0以上1300000未満である必要があります。メートル未満の小数も入力できますが、選択した精度で表現されるのは完全なグリッドセルです。処理はローカルかつ決定的であり、同じ座標と精度からは常に同じ文字列が得られます。ジオコーディング、地名検索、外部地図サービスへの問い合わせは行いません。
用途に合う精度をお選びください
精度は、2文字で示される100キロメートル区画内で、各座標に表示する数字の桁数です。0では2文字だけを返し、100キロメートル四方を示します。座標ごとに1桁なら10キロメートル、2桁なら1キロメートル、3桁なら100メートル、4桁なら10メートル、5桁なら1メートル四方です。そのため精度3では、eastingとnorthingをそれぞれ3桁含むTQ 300 800のような一般的な参照になります。桁を増やすとセルは小さくなりますが、元の測定値そのものが正確になるわけではありません。座標の取得方法と利用目的に見合う精度をご指定ください。100メートル単位でしか記録されていない観測値を、追加の数字を表示できるという理由だけで1メートル精度として扱うべきではありません。先頭の0は位置を表す重要な情報なので、出力でも保持されます。
区画文字と切り捨ての仕組み
先頭の2文字は、National Gridの100キロメートル区画を示します。この文字はeastingとnorthingの区画番号から直接算出され、数字の1との混同を避けるため、グリッドの文字体系ではIを使用しません。後続の数字グループは、その区画内で東方向、続いて北方向へ進んだ距離を表します。順序は必ずeastingが先、northingが後です。数字は指定精度で四捨五入せず、切り捨てます。グリッド参照は通常、対象点を含むセルの南西角を示すため、境界付近で丸めると隣のセルへ移ってしまう可能性があるからです。返されるオブジェクトには、整形済みの完全な参照、2文字の区画、精度が0より大きい場合の個別の数字グループ、および適用した精度が含まれます。そのため、表示文字列をそのままコピーする用途にも、各要素を再分割せず構造化して保存する用途にもご利用いただけます。
活用例
現地調査記録の表記を統一
メートル座標を一貫した間隔のグリッド参照へ変換し、報告書や資産台帳へ追加できます。
地図用ラベルを作成
印刷地図、経路案内、標識、来訪者向け情報に、統一した精度の読みやすいOSGB参照を生成できます。
取り込んだ位置データを正規化
数値座標の列を、検索、比較、出力、品質確認に適した標準参照フィールドへ変換できます。
よくある質問
どの座標系を使用すればよいですか?
通常OSGBまたはEPSG:27700と示される英国ナショナルグリッドのeastingとnorthingをご使用ください。経度・緯度は入力しないでください。
精度とは何ですか?
各数字グループの桁数です。0は100キロメートル四方、3は100メートル四方、5は1メートル四方を示します。
なぜ四捨五入せず切り捨てるのですか?
対象点を含むセル内に参照を保ち、そのセルを南西角から特定するためです。
先頭の0は保持されますか?
はい。先頭の0にも位置を示す意味があるため、各数字グループを選択した桁数まで補います。
5桁なら1メートルの正確さが保証されますか?
いいえ。1メートル四方のセルを生成しますが、実際の正確さは元の座標と測定・変換方法によって決まります。
APIリクエストの料金はいくらですか?
APIは1リクエスト当たり$0.002です。同じ決定的な変換をブラウザーでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/osgb-grid-reference \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"easting":530000,"northing":180000}'const res = await fetch("https://api.kit.forhosting.com/geo/osgb-grid-reference", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"easting": 530000,
"northing": 180000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/osgb-grid-reference",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"easting": 530000,
"northing": 180000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/osgb-grid-reference", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"easting":530000,"northing":180000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"easting":530000,"northing":180000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/osgb-grid-reference", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"easting": 530000,
"northing": 180000
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.osgb_grid_reference",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |