ジオハッシュ境界ボックス ― ジオハッシュから緯度経度の角を取得
ジオハッシュ9q8yyは、緯度37.749023438〜37.79296875、経度-122.431640625〜-122.387695312のセルです。1〜12文字のジオハッシュから範囲、4つの角、中心が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- ジオハッシュ文字列
- 9q8yy
- 精度
- 5
ジオハッシュは、経度と緯度のビットを交互に組み合わせ、世界地図を入れ子状の矩形に分割することで、地理上の点を短い base-32 文字列に収めます。文字が1つ増えるごとにセルが細かくなり、文字列は単一の座標ではなく精密な境界ボックスを表します。本機能は、有効な Gustavo Niemeyer 方式のジオハッシュをその矩形にデコードします。すなわち、緯度・経度の最小値と最大値、名前付きの角点、そして地図マーカーや空間クエリに適した中心点です。ジオハッシュのアルファベットにない無効な文字は、明確な無効入力エラーで失敗し、課金されません。
ジオハッシュ境界ボックスとは何か、文字列の渡し方
ジオハッシュは、近接検索や地図タイル化のために考案された階層型の空間インデックスです。アルファベットは10個の数字と22個の文字を使い、a、i、l、o を省くことで文字列の可読性を保ち、数字との混同を防ぎます。デコードは、経度マイナス180度からプラス180度、緯度マイナス90度からプラス90度の WGS84 全世界矩形から始まります。
各文字は5ビットを担い、ビットは経度と緯度を交互に示し、各ビットが現在の区間の下半分か上半分かを選びます。すべての文字を消費すると、残った区間がそのジオハッシュが一意に特定するセルです。長さは1〜12文字です。
短いハッシュは大まかなフィルタに便利な広い領域をカバーし、長いハッシュは街区レベルのセルまで範囲を絞ります。
境界ボックスと角、中心の読み方
便宜上の角 sw、ne、nw、se は、南西・北東のマーカーやポリゴン頂点を期待する地図ライブラリ向けに、同じ範囲を緯度・経度のペアとして再掲します。
SQL の BETWEEN フィルタや R-tree クエリを組むときは bbox 単体を、矩形オーバーレイを描くときは角を、データベース列のハッシュ位置に単一マーカーを置くときは center を使ってください。精度はセルの粗さを示します。1文字は大陸規模の広大な範囲を覆い、8文字以上は緯度によって近隣レベルになることが多いです。
検証失敗が座標をでっち上げることはありません。空間結合が静かに広がらないよう、閉じた形で失敗します。
活用例
空間データベースのフィルタ
保存されたジオハッシュキーを緯度・経度の最小・最大範囲に変換し、BETWEEN 句、タイル読み込み、精密な距離チェック前の粗い候補集合に利用できます。
地図のデバッグと教育
ログや宿題のジオハッシュを貼るだけで、GIS デスクトップスイートをインストールせずに、セルの矩形、角、中心をすぐ確認できます。
よくある質問
ジオハッシュで使える文字は?
数字 0-9 と文字 bcdfghjkmnpqrstuvwxyz(大文字小文字は不問)です。a、i、l、o は使われません。
この機能は座標をジオハッシュにエンコードしますか?
いいえ。 本機能は既存のジオハッシュを WGS84 境界ボックスにデコードするだけです。lat/lon のエンコードは別製品の意図です。
中心点は何に使いますか?
緯度と経度の範囲の中点で、セルを1つの地点で表したいときの地図のピンとして使うのが一般的です。データベースに保存したジオハッシュの位置に目印を置くときに便利です。
ジオハッシュは何文字まで使えますか?
1文字から12文字までです。短いと大陸規模の広い範囲になり、8文字以上になると緯度にもよりますが、おおむね街区ほどの細かいセルになります。
大文字で入力してもかまいませんか?
かまいません。大文字と小文字は区別されず、結果のジオハッシュは小文字にそろえて表示されます。a、i、l、oなど使えない文字は受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/geohash-bbox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"geohash":"9q8yy"}'const res = await fetch("https://api.kit.forhosting.com/geo/geohash-bbox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"geohash": "9q8yy"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geohash-bbox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"geohash": "9q8yy"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geohash-bbox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"geohash":"9q8yy"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"geohash":"9q8yy"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geohash-bbox", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"geohash": "9q8yy"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geohash_bbox",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
アルゴリズムはネットワーク呼び出しを伴わない純粋な決定的二分探索なので、地図バックエンドや物流ツール、GIS パイプラインは JSON をテストに固定できます。
ジオハッシュ境界ボックスとは何か、文字列の渡し方
必須フィールド geohash は JSON 文字列として送信してください。クライアントがすでに hash や gh という名前を使っている場合は、それらのエイリアスも受理されます。大文字小文字は区別されず、レスポンスは小文字に正規化された値を返します。空文字列、フィールドの欠落、範囲外の長さ、base-32 アルファベットに含まれない文字は、可能な場合は不正な文字とその位置を示すメッセージとともに invalid_input を発生させます。処理は純粋な算術なので、同一のジオハッシュは常に同一の JSON を生成し、時計や乱数シード、外部ジオコーダーは関与しません。
bbox フィールド、角、中心、精度の読み方
成功時のレスポンスには、geohash、文字数に等しい precision、そして10進度数の min_lat、min_lon、max_lat、max_lon を持つ bbox オブジェクトが含まれます。これら4つの数値は、ビット二分後のセルの閉じた WGS84 範囲で、精度に応じて緩やかに増える安定した桁数に丸められ、虚偽の精度ノイズなく JSON との親和性を保ちます。center フィールドは緯度・経度区間の算術的な中点で、セル内に1点だけ必要な場合の通常の地図ピン位置です。method ラベルは常に geohash_base32_bisection なので、下流のコードは形状を推測せずアルゴリズムを検証できます。
API の使い方、料金、地図ワークフロー、実務上の制限
地名や画像が必要な場合は、独自のスタックで逆ジオコーディングやタイル取得のステップと組み合わせてください。本製品はハッシュのジオメトリを展開するだけです。入力は他の KIT parse 項目と同じ保持ルールに従い、二分探索は完全に決定的なので、結果は継続的インテグレーションのフィクスチャに安全に固定できます。必須の geohash 文字列を含む JSON ボディを送信し、無料のブラウザ内ジオハッシュ境界ボックスツールを、教育、保存済みハッシュのデバッグ、地理空間ライブラリをインストールしない手軽な目視確認にご利用ください。物流プラットフォーム、配送ルーター、タイルキャッシュ、分析パイプラインが KIT 残高による安定した契約を必要とする場合は、成功項目ごとに $0.002 のプリペイド API をご利用ください。エンジンがリクエストを拒否した後、検証失敗が残高を消費することはありません。長さは12文字に制限され、実務的な地図精度をカバーしつつ Worker アイソレートの処理量を抑えます。SDK を配布する開発者は、min_lat と max_lon を Leaflet、MapLibre、Google Maps の LatLngBounds コンストラクタに直接マッピングできます。これは、境界ボックス API を公開する標準的なジオハッシュライブラリが計算するのと同じ矩形です。
連携の活用例
物流・IoT パイプライン
デバイスや倉庫システムがジオハッシュを発行し、バックエンドが安定したプリペイド API を通じて境界ボックスに展開し、ゾーンチェック、ヒートマップ、経路エンベロープに使います。
技術的な質問
ジオハッシュから境界ボックスを取得するには?
geohash に base-32 文字列(例: geohash: "9q8yy")を設定した JSON を送信してください。レスポンスには緯度・経度の最小値と最大値を持つ bbox と、角点・中心点が含まれます。
ジオハッシュ境界ボックス計算ツールは無料ですか?
ブラウザツールはお使いのデバイス上で無料で動作します。API 呼び出しは成功項目ごとに $0.002 のプリペイド KIT 残高を使用し、検証失敗は課金されません。
対応する精度の長さは?
1〜12文字のジオハッシュ文字列です。長い文字列ほどセルが細かくなり、レスポンスの precision は正規化後の文字数と一致します。