Radius-Bounding-Box für Breiten- und Längengrad berechnen
Ein Puffer von 1000 m um 51,5074, −0,1278 ergibt die vier Grenzen des kleinsten Breiten-Längen-Rechtecks, das ihn umschließt, mit Kennzeichen für Antimeridian und Pole. Das dient als schneller Vorfilter vor der genauen Distanzprüfung. 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
- Breitengrad
- 51,5074
- Längengrad
- -0,1278
- Radius (m)
- 1.000
- Minimaler Breitengrad
- 51,4984067964
- Minimaler Längengrad
- -0,1422489201
- Maximaler Breitengrad
- 51,5163932036
- Maximaler Längengrad
- -0,1133510799
Dieser Rechner wandelt einen mittleren Breiten- und Längengrad sowie einen Radius in Metern in das kleinste geografische Rechteck um, das den zugehörigen kreisförmigen Puffer auf einer kugelförmigen Erde einschließt. Das Ergebnis enthält minimale und maximale Koordinaten sowie Kennzeichen für das Überschreiten der Datumsgrenze und die Abdeckung aller Längengrade. Es eignet sich, wenn Ihre Datenbank, Ihr Kartendienst oder Ihr räumlicher Index vor einer genaueren Entfernungsprüfung einen schnellen rechteckigen Vorfilter benötigt.
Geben Sie Mittelpunkt und Radius mit eindeutigen Einheiten ein
Der Breitengrad muss zwischen -90 und 90, der Längengrad zwischen -180 und 180 liegen; der Radius darf nicht negativ sein. Ein Radius von null ist zulässig und erzeugt eine degenerierte Box, deren Grenzen dem Ausgangspunkt entsprechen. Die Berechnung verwendet den mittleren IUGG-Erdradius von 6,371,008.8 Metern.
Dieses Kugelmodell ist für Suchbereiche, Kartenvorschauen und Datenbank-Vorfilter praktisch. Stellen Sie das Rechteck nicht als vermessungsgenaue Grenze dar: Es soll den kreisförmigen Bereich im genannten Modell zuverlässig einschließen. Verwenden Sie im gesamten Ablauf dieselben Koordinatenannahmen und übergeben Sie keine Kilometer, Meilen oder Grad, wenn Meter erwartet werden.
Deuten Sie normale Ergebnisse und Überschreitungen der Datumsgrenze
Bei einem normalen Ergebnis ist jedes Minimum kleiner als das zugehörige Maximum; das Rechteck lässt sich daher direkt für eine Bereichsabfrage verwenden. In der Nähe von 180 Grad erfordert der Längengrad besondere Behandlung. Sortieren Sie die Werte nicht neu, da Sie sonst die große Gegenregion auswählen.
Der Breitengrad bleibt ein einzelner Bereich. Filtern Sie für eine belastbare Suche zuerst mit der Box und berechnen Sie anschließend die tatsächliche Großkreisentfernung; Punkte in den Ecken des Rechtecks können außerhalb des Kreispuffers liegen.
Behandeln Sie Polpuffer und weltweite Radien korrekt
Ein Puffer, der einen geografischen Pol erreicht, kann nicht durch einen schmalen Längengradbereich beschrieben werden, weil dort alle Meridiane zusammentreffen. Dieselbe vollständige Abdeckung gilt, wenn der Radius die Hälfte des Kugelumfangs erreicht. Der Algorithmus arbeitet deterministisch, ohne Netzwerk, gespeicherte Daten oder Zeitabhängigkeit.
Er eignet sich für reproduzierbare Stapelverarbeitung, Cache-Schlüssel, Tests und Browserberechnungen. Die Bounding Box ist eine effiziente Hülle und kein Polygon entlang der Kreislinie.
Anwendungsfälle
Eine Umgebungssuche vorfiltern
Erzeugen Sie indexfreundliche Breiten- und Längengradbereiche, bevor Sie für weniger Kandidaten die genaue Entfernung berechnen.
Den ersten Kartenausschnitt bestimmen
Leiten Sie Grenzen ab, die einen Radius um einen Ort einschließlich sicherer Pol- und Datumsgrenzenbehandlung enthalten.
Geodatenarbeit aufteilen
Wandeln Sie Punkt-Radius-Aufgaben in reproduzierbare Rechtecke für Caches, Kacheln, Warteschlangen oder räumliche Operationen um.
Häufige Fragen
Was kostet eine Anfrage?
Die Berechnung kann bei unterstützter Webdarstellung auch im Browser ausgeführt werden.
Welches Erdmodell wird verwendet?
Die Berechnung nutzt eine Kugel mit dem mittleren IUGG-Erdradius von 6,371,008.8 Metern.
Liegt jeder Punkt der Box innerhalb des Radius?
Nein. Die Box umschließt den Kreispuffer, daher können ihre Ecken weiter entfernt sein. Prüfen Sie bei Bedarf die genaue Entfernung.
Wie frage ich eine Box ab, die den Antimeridian überquert?
Teilen Sie die Länge in zwei Bereiche: von der minimalen Länge bis 180 und von −180 bis zur maximalen. Ist das Kennzeichen für die Überquerung gesetzt, ist die minimale Länge absichtlich größer als die maximale, tauschen Sie die Werte also nicht.
Was passiert, wenn der Puffer einen Pol erreicht?
Die Längen werden −180 und 180, und das Kennzeichen für alle Längen wird gesetzt, weil sich alle Meridiane am Pol treffen. Filtern Sie dann nur nach den Breitengrenzen und lassen Sie den Längenfilter weg.
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/buffer-bbox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":51.5074,"lon":-0.1278,"radius_m":1000}'const res = await fetch("https://api.kit.forhosting.com/geo/buffer-bbox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 51.5074,
"lon": -0.1278,
"radius_m": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/buffer-bbox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 51.5074,
"lon": -0.1278,
"radius_m": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/buffer-bbox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":51.5074,"lon":-0.1278,"radius_m":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":51.5074,"lon":-0.1278,"radius_m":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/buffer-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
{
"lat": 51.5074,
"lon": -0.1278,
"radius_m": 1000
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.buffer_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.
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
Geben Sie Mittelpunkt und Radius mit eindeutigen Einheiten ein
Tragen Sie den Mittelpunkt als Dezimalwerte lat und lon ein und geben Sie unter radius_m den Radius in Metern an. Die Koordinaten werden für stabiles JSON auf zehn Dezimalstellen gerundet und behalten dabei weit mehr Genauigkeit als die meisten Standortdaten benötigen.
Deuten Sie normale Ergebnisse und Überschreitungen der Datumsgrenze
Die vier Hauptwerte heißen min_lat, min_lon, max_lat und max_lon. Überschreitet der Puffer die Datumsgrenze, wechseln die Längengrade von positiven zu negativen Werten und crosses_antimeridian wird true. Dann ist min_lon absichtlich größer als max_lon. Fragen Sie zwei Bereiche ab: min_lon bis 180 und -180 bis max_lon.
Behandeln Sie Polpuffer und weltweite Radien korrekt
Deshalb liefert der Rechner min_lon als -180, max_lon als 180 und setzt covers_all_longitudes auf true, sobald das Breitenintervall einen Pol erreicht. In solchen Fällen ist crosses_antimeridian false, weil eine Aufteilung keine zusätzliche Information bieten würde. Verwenden Sie die Breitengrenzen und verzichten Sie auf den Längengradfilter, wenn covers_all_longitudes true ist. Dieses Verhalten vermeidet instabile Divisionen nahe den Polen und verhindert, dass eine irreführend schmale Box gültige Punkte ausschließt.
Technische Fragen
Warum kann min_lon größer als max_lon sein?
Diese Reihenfolge kennzeichnet eine Überschreitung der Datumsgrenze. Verwenden Sie zwei Längengradbereiche, ohne die Ränder zu vertauschen.
Was geschieht, wenn der Puffer einen Pol erreicht?
Der Längengrad reicht von -180 bis 180 und covers_all_longitudes ist true, weil alle Meridiane am Pol zusammentreffen.