Raster aus Begrenzungsrahmen
Wandeln Sie einen geografischen Begrenzungsrahmen in ein vollständiges regelmäßiges Raster um, ohne GIS-Software zu installieren oder Koordinatenschleifen zu programmieren.
Im Browser ausführen – kostenlos
Geben Sie den westlichen, südlichen, östlichen und nördlichen Rand in Dezimalgrad sowie die quadratische Zellgröße an. Das Ergebnis enthält die Rasterabmessungen und für jede Zelle Zeile, Spalte und genaue Grenzen. Die Zellen beginnen an der südwestlichen Ecke, folgen einer festen Reihenfolge und werden an den gegenüberliegenden Rändern so gekürzt, dass der angeforderte Rahmen exakt abgedeckt wird.
Legen Sie Begrenzungsrahmen und Zellgröße fest
Beginnen Sie mit einem üblichen Längen- und Breitengradrahmen. West und Ost bezeichnen Längengrade zwischen -180 und 180, Süd und Nord Breitengrade zwischen -90 und 90. Ost muss größer als West und Nord größer als Süd sein. Ein Westwert, der über dem Ostwert liegt, wird bewusst nicht als Überschreitung des Antimeridians gedeutet, weil dadurch Spaltenfolge und Randkürzung weniger eindeutig wären. Geben Sie cell_size in Dezimalgrad an. Derselbe Wert steuert Breite und Höhe; es entstehen also Winkelquadrate und keine Quadrate gleicher physischer Fläche. Ein Längengrad umfasst in Polnähe eine kürzere reale Strecke. Dieses Raster eignet sich daher für nachvollziehbare geografische Partitionierung, Kachelung, Stichproben und Anzeigevorbereitung, wenn Winkelgrenzen passend sind. Sind gleiche Distanzen oder Flächen erforderlich, projizieren Sie die Ausdehnung zuerst in ein geeignetes ebenes Koordinatensystem. Wählen Sie eine Größe, die genügend Detail liefert, ohne unnötige Ausgaben zu erzeugen. Eine Anfrage wird noch vor der Speicherzuweisung abgelehnt, wenn mehr als 10,000 Zellen entstünden. Diese feste Obergrenze hält Browser, API und nachgelagerte JSON-Verarbeitung berechenbar.
Verstehen Sie Abdeckung, Kürzung und Reihenfolge
Das Raster wird genau an der angegebenen südwestlichen Ecke verankert und nicht an einem verborgenen globalen Ursprung ausgerichtet. Zeile null beginnt bei Süd, Spalte null bei West. Jede reguläre Zelle erstreckt sich um cell_size nach Norden und Osten. Ist die Breite oder Höhe des Rahmens kein genaues Vielfaches dieses Werts, werden die Zellen der letzten Spalte oder Zeile an Ost beziehungsweise Nord gekürzt. Keine Zelle ragt über den Rahmen hinaus, und innerhalb bleibt keine Lücke. Die Antwort enthält rows, columns und cell_count, damit Sie den erwarteten Umfang prüfen können, ohne das Array cells erneut zu zählen. Die Zellen erscheinen zeilenweise: zuerst alle Spalten der südlichsten Zeile, danach die jeweils nördlichere Zeile. Jeder Datensatz besitzt eine nullbasierte Zeile und Spalte sowie vier numerische Grenzen namens west, south, east und north. Koordinaten werden auf zwölf Dezimalstellen normalisiert, um durch wiederholte Gleitkommaaddition entstehende Artefakte wie 0.30000000000000004 zu entfernen. Verwenden Sie die ausgegebenen Grenzen direkt, wenn Sie Rechtecke zeichnen, Polygone bilden, Kacheln benennen oder einen anderen Datensatz aufteilen.
Nutzen Sie ein deterministisches Raster in Datenabläufen
Ein erzeugtes Raster ist hilfreich, wenn eine zusammenhängende Untersuchungsfläche in wiederholbare rechteckige Einheiten zerlegt werden soll. Eine Kartenanwendung kann jeden Grenzdatensatz in einen Polygonring umwandeln. Ein Stichprobenablauf kann jeder Zeile und Spalte eine Aufgabe zuordnen. Eine Analysepipeline kann Punkte gegen Zellen prüfen, Datensätze pro Kachel zusammenfassen oder eine große Abfrage in kleinere geografische Anfragen teilen. Da der angegebene Rahmen den Ursprung bildet, stimmen Zellkennungen aus zwei Aufrufen nur überein, wenn west, south, east, north und cell_size identisch sind; speichern Sie diese Eingaben zusammen mit jeder Zeile und Spalte. Die Operation ist deterministisch und verwendet weder Kartenanbieter, Netzwerk, Zufallsstartwert, Uhr noch gemeinsamen Zustand. Dieselbe JSON-Eingabe ergibt somit dieselbe Geometrie und Reihenfolge. Die Fähigkeit liefert Grenzen statt GeoJSON, damit die Antwort kompakt und unabhängig vom GIS-Format bleibt. Sie berechnet keine Mittelpunkte, Flächen, Nachbarn, Punktzugehörigkeiten, Überschneidungen oder Koordinatentransformationen. Solche Schritte lassen sich anschließend aus den ausdrücklichen Grenzen ableiten. Die interaktive Ausführung im Browser ist kostenlos; für jede erfolgreiche API-Anfrage gilt der veröffentlichte Grundpreis von $0.002.
Anwendungsfälle
Unterteilen Sie eine Kartenausdehnung
Erzeugen Sie stabile Zeilen- und Spaltenkacheln, um räumliche Abfragen zu bündeln oder geografische Verarbeitung zu verteilen.
Bereiten Sie Stichprobeneinheiten vor
Erstellen Sie vollständige rechteckige Einheiten über einem Untersuchungsgebiet, bevor Sie Feldstichproben auswählen oder zuweisen.
Zeichnen Sie eine Rasterebene
Wandeln Sie jeden Grenzdatensatz in ein Rechteck oder Polygon für eine GIS- oder Webkartenebene um.
Häufige Fragen
Was kostet eine API-Anfrage?
Jede erfolgreiche API-Anfrage kostet $0.002. Dieselbe deterministische Berechnung können Sie auch kostenlos im Browser ausführen.
Welche Einheit verwendet cell_size?
Dezimalgrad. Der Wert steuert Längengradbreite und Breitengradhöhe; die Zellen sind Winkelquadrate und keine gleichen Bodenflächen.
Was geschieht, wenn der Rahmen nicht durch die Zellgröße teilbar ist?
Die letzte Zeile und Spalte werden an der Nord- und Ostgrenze gekürzt, sodass die Abdeckung vollständig im Rahmen bleibt.
Darf der Rahmen den Antimeridian überschreiten?
Nein. Ost muss größer als West sein. Teilen Sie eine solche Ausdehnung in zwei herkömmliche Begrenzungsrahmen.
In welcher Reihenfolge werden die Zellen ausgegeben?
Die Ausgabe erfolgt zeilenweise: Start im Südwesten, Bewegung nach Osten und anschließend Fortsetzung nach Norden.
Warum gilt eine Grenze von 10,000 Zellen?
Sie begrenzt Rechenaufwand und Antwortgröße. Erhöhen Sie cell_size oder teilen Sie den Rahmen, wenn eine Anfrage diesen Wert überschreitet.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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)Beispiel-Anfrage
{
"west": -2,
"south": 50,
"east": 0.5,
"north": 52,
"cell_size": 1
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.grid_from_bbox",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_cells | 10000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |