Slippy-Kacheln für einen Begrenzungsrahmen
Wandeln Sie einen Längen- und Breitengradrahmen in die exakten XYZ-Koordinaten von Slippy Maps um.
Im Browser ausführen – kostenlos
Geben Sie Westen, Süden, Osten, Norden und eine Zoomstufe an; der Rechner liefert jede angeschnittene Kachel in einer deterministischen Reihenfolge zeilenweise zurück. Zusätzlich nennt er kompakte x- und y-Bereiche, erkennt das Überschreiten des Antimeridians und meldet, ob polare Breitengrade auf Web Mercator begrenzt wurden. So können Sie Cache-Schätzungen, Offline-Karten, Rendering-Warteschlangen und Abdeckungsprüfungen reproduzierbar planen, ohne einen Kachelanbieter abzufragen.
Geografisches Gebiet und Zoom festlegen
Geben Sie den Begrenzungsrahmen als Westen, Süden, Osten und Norden in WGS84-Dezimalgrad ein und wählen Sie eine ganzzahlige Zoomstufe von 0 bis 22. Der Süden muss unter dem Norden liegen, und Westen und Osten müssen verschieden sein. Meist ist der westliche Wert kleiner als der östliche. Ist er größer, wertet der Rechner das Gebiet bewusst als Überschreitung des Antimeridians. Dadurch wird eine Region um Fidschi oder die Beringstraße nicht versehentlich auf nahezu den gesamten Planeten ausgedehnt. Für alle Längengrade verwenden Sie -180 im Westen und 180 im Osten. Die Berechnung folgt der üblichen XYZ-Konvention für Slippy Maps: x steigt von Westen nach Osten, y von Norden nach Süden, und z ist die gewählte Zoomstufe. Breitengrade außerhalb der Web-Mercator-Grenze werden als geografische Eingabe akzeptiert, aber auf den nächsten darstellbaren Kartenrand projiziert. Das Ergebnis kennzeichnet diese Begrenzung und erklärt damit, warum polare Grenzen keine zusätzlichen Kachelzeilen außerhalb des oberen oder unteren Kartenrands erzeugen.
Enthaltene Randkacheln richtig einordnen
Die Ergebnisliste enthält Kacheln, die den Begrenzungsrahmen mit einer positiven Fläche überlappen. Eine Kachel, die lediglich die östliche oder südliche Kante berührt, wird nicht aufgenommen. So erhält ein exakt am Raster ausgerichteter Rahmen keine unnötige Spalte oder Zeile. Die westliche und nördliche Kante wählen jeweils die unmittelbar innen liegenden Kacheln aus. Diese halboffene Behandlung ist für die Cache-Planung besonders praktisch, weil benachbarte Rahmen verarbeitet werden können, ohne beide Seiten jeder gemeinsamen Grenze systematisch zu vergrößern. Jede Kachel ist ein Objekt mit x, y und z; sortiert wird nach y-Zeilen von Norden nach Süden. Innerhalb einer Zeile läuft x von Westen nach Osten. Bei einem Rahmen über den Antimeridian endet zuerst das westliche Segment mit hohen x-Werten, danach geht es bei x null weiter. x_ranges und y_range liefern zusätzlich eine kompakte Abdeckung. Die Anzahl wird vor der Speicherzuweisung berechnet; Anfragen mit mehr als 100,000 Koordinaten werden verständlich abgewiesen.
Koordinaten in einem Cache-Ablauf verwenden
Verstehen Sie die Ausgabe als deterministischen Plan und nicht als heruntergeladene Kartendaten. Die Fähigkeit stellt keine Netzwerkanfragen und kennt weder Anbieter noch Stil, Dateiendung, Zugriffstoken oder Nutzungsrichtlinie. Ihre Anwendung kann jedes XYZ-Objekt einer Anbieter-URL, einem lokalen Verzeichnis wie z/x/y, einem Datenbankschlüssel oder einem Rendering-Auftrag zuordnen. Prüfen Sie tile_count vor der Einplanung, damit Speicherbedarf, Bandbreite und Anbieterquoten transparent bleiben. Für reproduzierbare Offline-Pakete speichern Sie Eingabegrenzen und Zoom zusammen mit der Koordinatenliste; ein weiterer Lauf mit identischer Eingabe erzeugt dieselben Werte in derselben Reihenfolge. Benötigt ein Gebiet mehrere Stufen, rufen Sie die Fähigkeit für jede Zoomstufe einzeln auf, da jede ihr eigenes Raster besitzt und die Kachelzahl schnell wächst. Teilen Sie große Gebiete bei hohem Zoom räumlich auf oder planen Sie zunächst auf niedrigerer Stufe. Der API-Preis beträgt $0.002 je Anfrage; Kosten für Hosting oder Abruf beim Kachelanbieter fallen getrennt an.
Anwendungsfälle
Umfang eines Offline-Kartenpakets schätzen
Zählen und listen Sie die benötigten XYZ-Dateien für die gewählte Region einer Außendienstanwendung vor dem Bildabruf auf.
Regionalen Kachel-Cache vorwärmen
Erzeugen Sie eine stabile Schlüsselwarteschlange für ein bekanntes Versorgungsgebiet und übergeben Sie sie einem autorisierten Cache-Wärmer.
Rendering-Aufträge planen
Zerlegen Sie das Rendering eines Rahmens in getrennte, reproduzierbar geordnete Kachelaufträge für unabhängige Worker.
Häufige Fragen
Welche Kachelkonvention wird verwendet?
Verwendet werden XYZ-Koordinaten für Slippy Maps: x wächst nach Osten, y nach Süden und z bezeichnet die Zoomstufe.
Kann ein Rahmen den Antimeridian überschreiten?
Ja. Setzen Sie Westen größer als Osten; die Ausgabe umfasst zuerst das westliche Segment mit hohen und dann das östliche mit niedrigen x-Werten.
Warum werden polare Breitengrade begrenzt?
Standard-Web-Mercator endet ungefähr bei 85.0511 Grad Nord und Süd. Eingaben darüber werden der nächsten verfügbaren Kachelzeile zugeordnet.
Werden Kartenkacheln heruntergeladen oder gespeichert?
Nein. Es werden nur Koordinaten ohne Netzwerkzugriff ausgegeben. Sie wählen die Quelle und beachten deren Bedingungen.
Was kostet eine Anfrage?
Der API-Preis beträgt $0.002 je Anfrage. Anbieter-, Speicher- oder Rendering-Kosten werden separat berechnet.
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/tiles-in-bbox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"west":-74.02,"south":40.7,"east":-73.98,"north":40.73,"zoom":12}'const res = await fetch("https://api.kit.forhosting.com/geo/tiles-in-bbox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"west": -74.02,
"south": 40.7,
"east": -73.98,
"north": 40.73,
"zoom": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/tiles-in-bbox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"west": -74.02,
"south": 40.7,
"east": -73.98,
"north": 40.73,
"zoom": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/tiles-in-bbox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"west":-74.02,"south":40.7,"east":-73.98,"north":40.73,"zoom":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"west":-74.02,"south":40.7,"east":-73.98,"north":40.73,"zoom":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/tiles-in-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": -74.02,
"south": 40.7,
"east": -73.98,
"north": 40.73,
"zoom": 12
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.tiles_in_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
min_zoom | 0 |
max_zoom | 22 |
max_tiles | 100000 |
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. |