Raster aus Begrenzungsrahmen
Teilen Sie einen Begrenzungsrahmen in ein Raster quadratischer Zellen: Von 2° W bis 0,5° O und 50° bis 52° N ergeben Zellen von 1° genau 2 Zeilen und 3 Spalten, die letzte Spalte passend gekürzt. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- West
- -2
- Süd
- 50
- Ost
- 0,5
- Nord
- 52
- Zellengröße
- 1
- Zeilen
- 2
- Spalten
- 3
- Zellenanzahl
- 6
Wandeln Sie einen geografischen Begrenzungsrahmen in ein vollständiges regelmäßiges Raster um, ohne GIS-Software zu installieren oder Koordinatenschleifen zu programmieren. 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. 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.
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. 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 Zellen erscheinen zeilenweise: zuerst alle Spalten der südlichsten Zeile, danach die jeweils nördlichere Zeile. 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. Die Operation ist deterministisch und verwendet weder Kartenanbieter, Netzwerk, Zufallsstartwert, Uhr noch gemeinsamen Zustand. 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.
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 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.
Haben die Zellen am Boden die gleiche Fläche?
Nein. Es sind Quadrate in Grad, nicht in Metern: Ein Längengrad wird zu den Polen hin schmaler, daher decken polnahe Zellen weniger Gelände ab. Brauchen Sie gleiche Flächen oder Abstände, projizieren Sie das Gebiet vorher in ein passendes ebenes System.
Wie viele Zellen kann ich höchstens erzeugen?
Bis zu 10.000 Zellen. Würden Rahmen und Zellgröße mehr ergeben, wird die Eingabe abgelehnt, bevor das Raster entsteht. Wählen Sie dann größere Zellen oder teilen Sie das Gebiet in kleinere Rahmen auf.
Verwandte Tools
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. |
Technische Hinweise
Legen Sie Begrenzungsrahmen und Zellgröße fest
Geben Sie cell_size in Dezimalgrad an. Diese feste Obergrenze hält Browser, API und nachgelagerte JSON-Verarbeitung berechenbar.
Verstehen Sie Abdeckung, Kürzung und Reihenfolge
Jede reguläre Zelle erstreckt sich um cell_size nach Norden und Osten. 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. Jeder Datensatz besitzt eine nullbasierte Zeile und Spalte sowie vier numerische Grenzen namens west, south, east und north.
Nutzen Sie ein deterministisches Raster in Datenabläufen
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. Dieselbe JSON-Eingabe ergibt somit dieselbe Geometrie und Reihenfolge. Die interaktive Ausführung im Browser ist kostenlos; für jede erfolgreiche API-Anfrage gilt der veröffentlichte Grundpreis von $0.002.
Technische 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.
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.