Bounding-Box-Vereinigung
Zwei Boxen, eine von 40,7 bis 40,8 Grad Breite und eine von 40,75 bis 40,9, ergeben vereinigt eine Box von 40,7 bis 40,9, in der Länge von −74,1 bis −73,85. Sie erhalten außerdem Ausdehnung, Fläche und Mittelpunkt. 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
- Min. Breitengrad A
- 40,7
- Max. Breitengrad A
- 40,8
- Min. Längengrad A
- -74,1
- Max. Längengrad A
- -73,9
- Min. Breitengrad B
- 40,75
- Max. Breitengrad B
- 40,9
- Minimaler Breitengrad
- 40,7
- Maximaler Breitengrad
- 40,9
- Minimaler Längengrad
- -74,1
- Maximaler Längengrad
- -73,85
Ein Rechner für die Vereinigung von Bounding-Boxen nimmt zwei geografische Rechtecke mit minimaler und maximaler Breite und Länge und liefert das kleinste achsparallele Rechteck, das beide vollständig enthält. Karten-Pipelines sammeln oft getrennte Hüllen —eine pro Layer, Cluster oder Download-Kachel— und brauchen ein gemeinsames Viewport, Abfragefenster oder Export-Ausmaß, ohne eine schwere Geometriebibliothek aufzubauen.
Was eine Bounding-Box-Vereinigung ist und wann Sie sie brauchen
Eine achsparallele geografische Bounding-Box ist das Rechteck aus südlicher Breite, nördlicher Breite, westlicher Länge und östlicher Länge. Wenn Sie bereits zwei solche Rechtecke haben —aus unabhängigen Feature-Abfragen, Kachel-Caches, Offline-Paketen oder Geschwister-Microservices— brauchen Sie oft die eine Hülle, die alle Ecken beider abdeckt, ohne eine vollständige Multipolygon-Auflösung zu berechnen. Die klassische Vereinigung achsparalleler Boxen nutzt komponentenweise Extreme: die südliche Kante der Vereinigung ist die kleinere der beiden Südkanten; die nördliche die größere der beiden Nordkanten; die westliche die kleinere der beiden Westlängen; die östliche die größere der beiden Ostlängen.
Diese Konstruktion ist das kleinste achsparallele Rechteck, das beide Eingaben noch enthält, gemessen im selben Lat/Lon-System. Lehrkräfte, GIS-Studierende und Backend-Ingenieure verlangen, dass invertierte Bereiche (Min größer als Max) harte Fehler sind: stilles Tauschen von Ecken würde Client-Fehler verbergen und Hüllen erzeugen, die nicht zu den geplanten Layern passen. Verschachtelte Fälle löst dieselbe Min/Max-Regel: liegt Box A vollständig in B, ist die Vereinigung B; sind die Boxen identisch, ist die Vereinigung eine der beiden.
Disjunkte Boxen erzeugen trotzdem eine gültige Hülle, die die Lücke zwischen ihnen abdeckt —nützlich für die Kamerarahmung der Karte, auch wenn sich Layer nicht überlappen. Diese Seite richtet sich an Personen, die bereits zwei Bboxes haben und deren kombiniertes Ausmaß brauchen, nicht an Personen mit nur Mittelpunkt und Radius (nutzen Sie zuerst ein Punkt-Radius-Bounding-Box-Werkzeug) und nicht an Personen, die geodätische Puffer auf einem Ellipsoid brauchen.
Anwendungsfälle
Layer- und Abfragehüllen für Karten-Viewports zusammenführen
Kombinieren Sie zwei unabhängige Feature-Layer-Bounding-Boxen zu einem Kamera- oder Kachel-Anfrageausmaß, das jede zurückgegebene Geometrie abdeckt.
SQL-Raumvorfilter über Microservices
Vereinigen Sie Ergebnis-Hüllen von Dienst A und Dienst B zu einem einzigen BETWEEN-Fenster vor einem schwereren Join oder einer Distanzverfeinerung.
Häufige Fragen
Warum wird Min größer als Max abgelehnt?
Ein invertierter Bereich ist fast immer ein Client-Fehler.
Behandelt das den Antimeridian?
Bereiten Sie ungewickelte Bereiche clientseitig vor, wenn Sie diesen Fall brauchen.
Wie wird die Vereinigung berechnet?
Kante für Kante über die Extremwerte: der kleinere der beiden Südränder, der größere der beiden Nordränder, die kleinere Westlänge und die größere Ostlänge. Das ergibt das kleinste achsenparallele Rechteck, das beide Boxen enthält.
Was passiert, wenn eine Box ganz in der anderen liegt?
Dann ist die Vereinigung einfach die größere Box, weil ihre Kanten bereits die Extremwerte sind. Sind beide Boxen identisch, entspricht die Vereinigung jeder von ihnen.
Kann ich zwei Boxen vereinigen, die sich nicht berühren?
Ja. Auch getrennte Boxen ergeben eine gültige Hülle, die zusätzlich die Lücke dazwischen abdeckt. Das hilft, einen Kartenausschnitt um zwei Ebenen zu legen, die sich nicht überlappen.
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/bbox-union \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"min_lat_a":40.7,"max_lat_a":40.8,"min_lon_a":-74.1,"max_lon_a":-73.9,"min_lat_b":40.75,"max_lat_b":40.9,"min_lon_b":-74.05,"max_lon_b":-73.85}'const res = await fetch("https://api.kit.forhosting.com/geo/bbox-union", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"min_lat_a": 40.7,
"max_lat_a": 40.8,
"min_lon_a": -74.1,
"max_lon_a": -73.9,
"min_lat_b": 40.75,
"max_lat_b": 40.9,
"min_lon_b": -74.05,
"max_lon_b": -73.85
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/bbox-union",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"min_lat_a": 40.7,
"max_lat_a": 40.8,
"min_lon_a": -74.1,
"max_lon_a": -73.9,
"min_lat_b": 40.75,
"max_lat_b": 40.9,
"min_lon_b": -74.05,
"max_lon_b": -73.85
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/bbox-union", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"min_lat_a":40.7,"max_lat_a":40.8,"min_lon_a":-74.1,"max_lon_a":-73.9,"min_lat_b":40.75,"max_lat_b":40.9,"min_lon_b":-74.05,"max_lon_b":-73.85}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"min_lat_a":40.7,"max_lat_a":40.8,"min_lon_a":-74.1,"max_lon_a":-73.9,"min_lat_b":40.75,"max_lat_b":40.9,"min_lon_b":-74.05,"max_lon_b":-73.85}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/bbox-union", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"min_lat_a": 40.7,
"max_lat_a": 40.8,
"min_lon_a": -74.1,
"max_lon_a": -73.9,
"min_lat_b": 40.75,
"max_lat_b": 40.9,
"min_lon_b": -74.05,
"max_lon_b": -73.85
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.bbox_union",
"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 acht endliche Ecken in Dezimalgrad ein (Min und Max von Lat und Lon für Box A und B); das Werkzeug liefert min_lat, max_lat, min_lon und max_lon der Vereinigung, ein GeoJSON-artiges bbox-Array [west, south, east, north], Breite und Höhe in Grad, Fläche in Grad zum Quadrat, den Mittelpunkt, die Eingabe-Boxen, ein Beziehungsflag für identische oder verschachtelte Fälle sowie schrittweise Ableitungslinien. Invertierte Boxen und Koordinaten außerhalb des Bereichs scheitern mit invalid_input, damit Sie nie stillschweigend vertauschte Bereiche ausliefern.
So rufen Sie die API auf und was zurückkommt
Breitenfelder müssen im abgeschlossenen Intervall von minus neunzig bis neunzig liegen; Längenfelder von minus einhundertachtzig bis einhundertachtzig. Senden Sie einen JSON-Body mit acht erforderlichen endlichen Zahlen: min_lat_a, max_lat_a, min_lon_a und max_lon_a für die erste Box sowie min_lat_b, max_lat_b, min_lon_b und max_lon_b für die zweite. Innerhalb jeder Box muss min_lat kleiner oder gleich max_lat und min_lon kleiner oder gleich max_lon sein. Kanonische Namen akzeptieren Aliasse wie south_a, north_a, west_a, east_a und die entsprechenden _b-Formen sowie Alternativen im Stil lat_min_a, damit bestehende Clients gängige GIS-Feldnamen ohne Umschreiben abbilden. Bei Erfolg setzt die Antwort min_lat, max_lat, min_lon und max_lon der Vereinigung; setzt bbox auf das Vierertupel min_lon, min_lat, max_lon, max_lat in west-south-east-north-Reihenfolge; setzt width_deg, height_deg und area_deg2 aus Grad-Arithmetik; setzt center_lat und center_lon auf den Mittelpunkt der Vereinigung; liefert box_a und box_b mit gerundeten Ecken; setzt relation auf identical, a_inside_b, b_inside_a oder partial_or_disjoint; setzt message auf eine kurze englische Zusammenfassung; und setzt steps auf ein geordnetes Array von Ableitungslinien für Protokolle oder Oberfläche. Fehlgeschlagene Validierung —fehlende Felder, nicht-endliche Zahlen, Breite oder Länge außerhalb des Bereichs oder Min größer als Max— liefert invalid_input und wird nie berechnet. Der Preis ist pauschal $0.002 pro erfolgreicher Anfrage mit Einheit item.
Praktische Tipps, Grenzen und verwandte Suchen
Halten Sie beide Boxen im selben geografischen CRS und in Dezimalgrad; mischen Sie keine Web-Mercator-Meter mit Lat/Lon-Grad in demselben Aufruf. In Polnähe ist ein Längengrad in Metern kurz; nutzen Sie die Vereinigung zum Indizieren und Viewport-Rahmen und verfeinern Sie mit projizierten oder geodätischen Maßen, wenn Sie physische Fläche brauchen. Bevorzugen Sie diese Fähigkeit, wenn Sie bereits zwei achsparallele Hüllen halten und nur das umschließende Rechteck brauchen; ist die Quelle eine Multipunktmenge, berechnen Sie stattdessen eine Multipunkt-Bbox. Bedenken Sie, dass eine gradbasierte Hülle keine echte geodätische Fläche ist: width_deg und height_deg sind Winkelspannen, und area_deg2 ist ihr Produkt für schnelle Vergleiche, nicht Quadratmeter auf dem Ellipsoid. Für pazifikzentrierte Arbeit nahe dem Antimeridian stellen Sie sicher, dass jede Eingabe bereits min_lon kleiner oder gleich max_lon im von Ihnen gewählten ungewickelten Sinn hat; dieses Werkzeug erfindet kein datumsgrenzenübergreifendes Multipolygon, weil der Produktvertrag explizit komponentenweises Min und Max ist. Beispielpaare: zwei überlappende Manhattan-Viertel, die Süd- und Ostkanten erweitern; eine kleine Box in einer städtischen Box mit relation a_inside_b; und eine absichtlich invertierte Box, die den harten invalid_input-Pfad zeigt. Diese Landing zielt auf Suchen nach Bounding-Box-Vereinigung, zwei Bounding-Boxen zusammenführen, Lat-Lon-Hülle zweier Boxen oder kombiniertem geografischem Ausmaß; sie ist kein Punkt-Radius-Puffer, kein Geohash-Encoder und keine Polygon-Auflösung. Fehlgeschlagene Aufgaben mit invalid_input verbrauchen kein Prepaid-Guthaben, was explorative Skripte günstig hält, wenn Lernende absichtlich invertierte Bereiche senden. Roundtrip-Prüfungen sind einfach: berechnen Sie das Minimum der beiden min_lat-Werte von Hand und bestätigen Sie, dass die Antwort innerhalb der veröffentlichten zwölfstelligen Rundung passt.
Integrationsbeispiele
Offline-Pakete und Export-Ausmaß planen
Mit zwei bereits als Lat/Lon-Boxen beschriebenen Regionspaketen berechnen Sie deterministisch das kombinierte Download- oder Druckausmaß für CI-Fixtures.
Technische Fragen
Wie wird die Vereinigungs-Bounding-Box berechnet?
Komponentenweise Extreme: min_lat ist die kleinere der beiden Südkanten, max_lat die größere Nordkante, min_lon die kleinere Westkante und max_lon die größere Ostkante. Das ist die kleinste achsparallele Box, die beide Eingaben enthält.
Was, wenn eine Box vollständig in der anderen liegt?
Die Vereinigung entspricht der äußeren Box. Die Antwort setzt relation auf a_inside_b oder b_inside_a, damit Clients Verschachtelung ohne Extra-Prüfungen erkennen.
Ist der Bounding-Box-Vereinigungsrechner kostenlos?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Aufrufe nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreicher Anfrage; fehlgeschlagene Aufgaben werden nie berechnet.