ジオハッシュデコード
u4pruydqqvjのようなジオハッシュを貼り付けると、セルの中心の緯度・経度と、セルの大きさを示す誤差の幅が分かります。11文字なら位置は数メートルほどに絞られます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- デコードするジオハッシュ文字列
- u4pruydqqvj
- 緯度
- 57.6491106302
- 経度
- 10.4074396938
- 緯度の誤差
- 0.0000006706
- 経度の誤差
- 0.0000006706
このジオハッシュデコードツールは、コンパクトなジオハッシュ文字列を、中心の緯度・経度と、エンコードされたセルの大きさを表す半セルの誤差範囲に変換します。ジオハッシュは、データベース、地図、物流、IoTで、すべてのキーに完全な浮動小数点の座標を保存することなく近くの地点をまとめるために使われる base-32 の空間インデックスです。このデコーダーは古典的な区間二分法アルゴリズムに従います。各文字が経度と緯度を交互に切り替える5ビットに寄与し、経度の±180度、緯度の±90度という世界のウィンドウを、報告される地点を中心とする小さな長方形まで縮小させます。
ジオハッシュが符号化する内容とこのデコーダーが返す内容
ジオハッシュは、経度と緯度のビットを交互に配置することで、地理的な領域を短いbase-32文字列に詰め込みます。文字列が長いほどセルは小さくなります。1文字のジオハッシュは惑星の広大な帯であり、11文字か12文字あれば、緯度によっておよそ数メートル以下まで地点を特定できます。
このツールは独自の符号化を発明しているわけではなく、一般的なライブラリが生成する文字列が同じ中心と同じ誤差の半値幅にデコードされるよう、広く使われている公開アルゴリズムを実装しています。逆ジオコーディングも地図タイルも住所検索もありません。通りの名前が必要な場合はジオコーダーをご利用ください。
このページは、セルの純粋な幾何学的デコードのみに答えます。
入力の検証方法とビットが緯度・経度になる仕組み
入力はトリムされ小文字化されます。許可されるアルファベットは0から9と、a、i、l、oを除くbからzの文字で、世界中のジオハッシュ実装で使われる標準のbase-32セットに一致します。長さは22文字に制限されており、これは日常的な地図の精度をはるかに超えるため、病理的な入力がCPUを浪費することはありません。
デコードは、経度を-180から180の区間、緯度を-90から90の区間として開始します。文字ごとに5ビットを最上位から最下位まで処理し、デコーダーは有効な軸を二分し、ビットに応じて上半分または下半分を保持し、その後もう一方の軸に切り替えます。すべての文字を処理した後、中心は各残存区間の中点であり、誤差範囲は区間の幅の半分です。
これがセルの不確かさを報告する慣習的な方法です。
ジオハッシュデコードが製品・データ・学習で役立つ場面
エンジニアは、RedisやElasticsearchのインデックスが空間プレフィックスで行をキー付けするとき、IoTデバイスが完全な座標の代わりに短いセルIDを出力するとき、あるいはプライバシーを保護するパイプラインが正確な自宅を保存することなくユーザーを近隣にまとめるときにジオハッシュに出会います。
物流や配送のツールは、おおよそのサービスエリアを描いたり、2つの荷物が同じラストマイルゾーンを共有しているかを判断したりする前に、ジオハッシュを中心と誤差ボックスに展開します。学生や面接候補者は、デコーダーを使って手作業の二分法のステップを検証し、5文字の文字列が本当に都市規模の領域をカバーし、9文字の文字列が近隣規模であることを確認します。
データチームは、数十億行を読み込む前に、サンプルをデコードして中心が期待される国の境界ボックス内に収まることをアサートすることで、インポートされたCSVの列を検証します。このページでの計算はすべてブラウザ内で完結します。空間キー向けに無料で決定的なヘルパーの小さなラボを構築する際は、他の地理系または符号化系ツールと組み合わせてご利用ください。
活用例
空間インデックスの検査
デバッグやダッシュボードのために、データベースや検索インデックスのジオハッシュキーを中心の緯度経度とセルサイズに展開します。
地図のピンとサービスエリア
地図や物流UI上で、ジオハッシュを中心点と誤差から導いたハローまたは境界ボックスとしてプロットします。
決定的なテストフィクスチャ
浮動小数点の当て推量なしに、ユニットテストとCI向けに再現可能な緯度・経度・誤差範囲を生成できます。
よくある質問
ジオハッシュではどの文字が使えますか?
base-32アルファベット0123456789bcdefghjkmnpqrstuvwxyz(大文字小文字を区別しません)のみです。
ジオハッシュが長いほど精度は高くなりますか?
はい。 文字が1つ増えるごとに5ビットが加わり、セルは縮小します。
このツールは緯度経度をジオハッシュにエンコードできますか?
いいえ。 この機能は、既存のジオハッシュ文字列を座標と誤差範囲にデコードするだけです。
ジオハッシュの誤差の幅は何を意味しますか?
ジオハッシュは1つの点ではなく小さな長方形を表します。ツールはその中心を示し、誤差の幅は長方形の高さと幅の半分を度で表したものなので、実際の位置は中心からその範囲内にあります。
ジオハッシュから住所は分かりますか?
いいえ。このツールが行うのは、セルの中心、誤差の幅、範囲という幾何学的な計算だけです。通りの名前や住所が必要な場合は、ここで得た座標をジオコーダーに入力してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/geohash-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"geohash":"u4pruydqqvj"}'const res = await fetch("https://api.kit.forhosting.com/geo/geohash-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"geohash": "u4pruydqqvj"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geohash-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"geohash": "u4pruydqqvj"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geohash-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"geohash":"u4pruydqqvj"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"geohash":"u4pruydqqvj"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geohash-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"geohash": "u4pruydqqvj"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geohash_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_len | 22 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
文字a、i、l、oを含む、ジオハッシュのアルファベット外の文字は、明確なinvalid_inputメッセージとともに拒否されるため、不正なトークンがサイレントに誤った座標になることはありません。この経路は完全に決定的であり、ネットワークも乱数も時計も使わず、ブラウザで無料に、あるいはCI、タイルパイプライン、地図ツールで再現可能なフィクスチャが必要な場合は成功したデコードごとに$0.002のAPI経由でも動作します。
ジオハッシュが符号化する内容とこのデコーダーが返す内容
レスポンスには、正規化された小文字のジオハッシュ、IEEE倍精度浮動小数点数としての中心の緯度と経度、セルの半分の広がりに対する個別のlat_errorとlon_errorのフィールド、構造化された形式を好む呼び出し側のために同じ2つの数値を持つネストされたerrorオブジェクト、最小・最大の緯度・経度を持つ完全なbounding_box、文字精度、テレメトリ用のgeohash_decodeというメソッドタグが含まれます。不正な文字、空文字列、過度に長い入力は、パイプラインが推測することなく不正なペイロードと実際の位置を区別できるよう、invalid_inputで即座に失敗します。
入力の検証方法とビットが緯度・経度になる仕組み
優先されるフィールドはgeohashで、hash、g、text、valueといった別名も受け付けるため、クエリ文字列、フォームフィールド、スプレッドシートのエクスポートは列名を変えずに同じ契約を再利用できます。スペース、句読点、禁止された文字を含む、そのセット外の文字は、原因となった文字とその位置とともにinvalid_inputを引き起こすため、ソースをすばやく修正できます。
ジオハッシュデコードが製品・データ・学習で役立つ場面
モバイルや Web の地図プロトタイプは、しばしばパートナーAPIからジオハッシュを受け取り、単なる点ではなく誤差範囲から算出したハローを伴ってセルの中心にピンをプロットしなければなりません。API経由では成功したデコード1件につき$0.002がかかり、検証に失敗したリクエストは課金されず、レスポンスが返された後は何も保存されません。この無料のインタラクティブな探索と、同一結果を返す有料APIという分割は、KITのtier-Aカタログの他のツールと同様であり、地図のデモから自動化パイプラインへ、数学的な結果を変えることなく移行できます。
技術的な質問
ジオハッシュデコードツールの料金はいくらですか?
このページのブラウザ版は無料です。API経由では成功したリクエストごとに$0.002がかかり、無効な入力には課金されません。
lat_errorとlon_errorとは何ですか?
デコードされたセルの高さと幅のそれぞれ半分です。真の地点は、中心±それらの余裕の境界ボックス内にあります。