バウンディングボックスからメッシュグリッドを作成
GISソフトウェアの導入や座標ループの実装を行わずに、地理的なバウンディングボックスを完全な規則メッシュへ変換できます。西端、南端、東端、北端を十進度で指定し、正方形セルの大きさを入力してください。結果にはグリッドの行数と列数に加え、各セルの行、列、正確な境界が含まれます。セルは南西隅から一定の順序で並び、反対側の端では指定範囲に合わせて切り詰められるため、幅や高さがセルサイズで割り切れない場合も範囲を正確に覆えます。
無料で実行
範囲とセルサイズを設定します
通常の経度・緯度による範囲を指定してください。westとeastは-180から180までの経度、southとnorthは-90から90までの緯度です。eastはwestより大きく、northはsouthより大きい必要があります。westがeastより大きい値を日付変更線の横断とは解釈しません。折り返しを自動処理すると、列の順序や端の切り詰め方が分かりにくくなるためです。cell_sizeは十進度で指定します。同じ値が幅と高さの両方に使われるため、生成されるのは角度上の正方形であり、地表面積が等しい正方形ではありません。経度1度の実距離は極に近づくほど短くなります。このため、角度境界を用いる明確な地域分割、タイル化、標本抽出、表示準備に適しています。等距離や等面積が必要な場合は、先に対象範囲を適切な平面座標系へ投影してください。必要な詳細度を保ちながら、過大な出力を避けられるサイズをお選びください。10,000セルを超える要求はメモリ確保前に拒否されます。この上限により、ブラウザー、API、後続のJSON処理を予測可能な範囲に保てます。
範囲の網羅、端の切り詰め、順序を確認します
メッシュは、非公開の世界共通原点ではなく、入力された南西隅そのものを基準に配置されます。行0はsouthから、列0はwestから始まります。通常のセルは北と東へcell_sizeずつ広がります。範囲の幅または高さがセルサイズの整数倍でない場合、最後の列または行はeastまたはnorthに合わせて短くなります。指定範囲の外へ出るセルも、内部に残る隙間もありません。応答にはrows、columns、cell_countが含まれるため、cells配列を数え直さずに出力量を確認できます。セルは行優先で並びます。最南端の行にある全列が先に出力され、その後は北側の行へ進みます。各レコードには0始まりの行と列、およびwest、south、east、northという4つの数値境界が入ります。座標は小数点以下12桁に正規化され、浮動小数点の加算で生じる0.30000000000000004のような誤差表示を抑えます。長方形の描画、ポリゴン作成、タイル名の付与、別データセットの分割には、返された境界をそのままご利用ください。
再現可能なメッシュをデータ処理に活用します
連続した調査地域を再現可能な長方形単位へ変換する場合に、生成メッシュが役立ちます。地図アプリケーションでは各境界レコードからポリゴンリングを作成できます。標本抽出では各行と列へ調査作業を割り当てられます。分析パイプラインでは、点が属するセルの判定、タイル単位の集計、大きな問い合わせの小さな地理要求への分割が可能です。原点は入力された範囲ですので、2回の呼び出しでセル識別子を一致させるには、west、south、east、north、cell_sizeをすべて同一にしてください。保存する行と列には、これらの入力値も併記することをお勧めします。この処理は決定的であり、地図事業者、ネットワーク、乱数シード、時刻、共有状態を使用しません。同じJSON入力からは、常に同じ形状と順序が得られます。応答を簡潔にし、GIS形式に依存させないため、GeoJSONではなく境界を返します。重心、面積、隣接セル、点の所属、交差、座標変換は計算しません。必要な後処理は、明示された境界から実行できます。ブラウザーでの対話実行は無料で、正常なAPI要求には公開基本料金の$0.002が適用されます。
活用例
地図範囲を分割します
安定した行列タイルを生成し、空間問い合わせの分割や地理処理の分散に利用できます。
標本抽出単位を準備します
現地標本を選択または割り当てる前に、調査地域全体へ長方形単位を生成できます。
メッシュレイヤーを描画します
各境界レコードを長方形またはポリゴンに変換し、GISやWeb地図のレイヤーとして表示できます。
よくある質問
API要求の料金はいくらですか?
正常なAPI要求1件は$0.002です。同じ決定的な計算をブラウザーで無料実行することもできます。
cell_sizeの単位は何ですか?
十進度です。経度方向の幅と緯度方向の高さを同時に指定するため、セルは角度上の正方形であり、地表面積は均等ではありません。
範囲がセルサイズで割り切れない場合はどうなりますか?
最後の行と列を北端および東端に合わせて切り詰めるため、外側へはみ出さずに全範囲を覆います。
日付変更線をまたぐ範囲を指定できますか?
いいえ。eastはwestより大きい必要があります。日付変更線をまたぐ範囲は、通常の2つの範囲へ分割してください。
セルはどの順序で返されますか?
行優先です。南西セルから東へ進み、各行が終わると北側の次の行へ進みます。
10,000セルの上限があるのはなぜですか?
計算量と応答サイズを制限するためです。上限を超える場合はcell_sizeを大きくするか、範囲を分割してください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/grid-from-bbox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"west":-2,"south":50,"east":0.5,"north":52,"cell_size":1}'const res = await fetch("https://api.kit.forhosting.com/geo/grid-from-bbox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"west": -2,
"south": 50,
"east": 0.5,
"north": 52,
"cell_size": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/grid-from-bbox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"west": -2,
"south": 50,
"east": 0.5,
"north": 52,
"cell_size": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/grid-from-bbox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"west":-2,"south":50,"east":0.5,"north":52,"cell_size":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"west":-2,"south":50,"east":0.5,"north":52,"cell_size":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/grid-from-bbox", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"west": -2,
"south": 50,
"east": 0.5,
"north": 52,
"cell_size": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.grid_from_bbox",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_cells | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |