API für Drohnen-Flugverbotszonen: erste Schritte
Aktualisiert
Die öffentliche GeoPilot-API liefert die Drohnenzonendaten der Karte für jede Quelle, deren Lizenz die Weiterverbreitung erlaubt, als GeoJSON über HTTPS. Senden Sie Ihren API-Schlüssel als Bearer-Token an /api/v1/public, und Sie können Zonen nach Land oder Gebiet auflisten, abfragen, welche Zonen an einem Punkt oder in einem Umkreis gelten, ein Fluggebiet oder eine Route prüfen und zwischen ED-269, ED-318, KML und GeoJSON umwandeln. Der API-Zugang ist ein von den Kartentarifen getrenntes Produkt.
Einen Schlüssel erhalten
- Abonnieren Sie auf der Seite API-Zugang — oder beantragen Sie Zugang, um die API zuerst zu testen oder ein höheres Limit anzufragen.
- Öffnen Sie in Ihrem Profil den Tab API-Zugang und erstellen Sie einen Schlüssel: Geben Sie ihm einen Namen und wählen Sie nur die Scopes, die er braucht.
- Kopieren Sie den Schlüssel, wenn er angezeigt wird. Er wird genau einmal angezeigt; wenn Sie ihn verlieren, widerrufen Sie ihn und erstellen einen neuen.
| Scope | Erlaubt |
|---|---|
RESTRICTIONS_READ | Zonen auflisten, Punkt- und Umkreisabfragen, eine Zone anhand ihrer ID |
CONFLICT_CHECK | Ein Gebiet oder eine Route mit aktiven Zonen abgleichen |
CONVERT_ED269 | Umwandlung nach oder aus ED-269 |
CONVERT_ED318 | Umwandlung nach oder aus ED-318 |
CONVERT_KML | Umwandlung nach oder aus KML |
Ihre erste Anfrage: Was gilt hier?
Legen Sie den Schlüssel in einer Umgebungsvariablen ab und fragen Sie jede Zone an einem Punkt ab:
curl "https://geopilot.space/api/v1/public/restrictions/at?lat=44.43&lon=26.10" \ -H "Authorization: Bearer $GEOPILOT_API_KEY"
Die Antwort ist eine GeoJSON-FeatureCollection mit einem meta-Block daneben. Jedes Feature enthält die effect der Zone (PROHIBITED, AUTHORIZATION_REQUIRED, COORDINATION_REQUIRED, INFORMATION_ONLY oder UNKNOWN), ihren type, ob sie activeNow ist, sowie IDs für ihre Quelle und Behörde — dieselben Fakten, die das Klick-Panel der Karte zeigt.
Die Endpunkte
| Anfrage | Liefert | Scope |
|---|---|---|
GET /restrictions | Zonen, gefiltert nach Land, Begrenzungsrahmen, Typ, Wirkung… | RESTRICTIONS_READ |
GET /restrictions/at | Alle Zonen, die sich an einem Punkt überlagern | RESTRICTIONS_READ |
GET /restrictions/near | Zonen in einem Umkreis, die nächstgelegenen zuerst | RESTRICTIONS_READ |
GET /restrictions/:id | Eine Zone | RESTRICTIONS_READ |
POST /restrictions/intersect | Was ein Gebiet oder eine Route berührt | CONFLICT_CHECK |
POST /convert/:from-:to | Ein Dokument in einem anderen Format | Siehe den Ratgeber zur Umwandlung |
Ein Fluggebiet prüfen
curl -X POST "https://geopilot.space/api/v1/public/restrictions/intersect" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"geometry":{"type":"Polygon","coordinates":[[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]]}}'Die Antwort listet jede Zone, die die Form berührt, mit ihrer Wirkung, ob sie zum bewerteten Zeitpunkt aktiv ist, intersectionAreaM2 und intersectionRatio (der Anteil Ihres Gebiets, den sie abdeckt; null bei einer Route), dazu eine summary mit Anzahlen je Wirkung. Übergeben Sie activeAt, um einen künftigen Zeitpunkt zu bewerten. Wie die Karte listet die API auf und zieht keine Schlüsse — ein Feld „erlaubt“ gibt es bewusst nicht.
Fehler, Limits und Lizenzen
- 401 — der Schlüssel fehlt, ist fehlerhaft, unbekannt, widerrufen oder abgelaufen. 403 — der Schlüssel ist gültig, aber der API-Zugang seines Inhabers ist abgelaufen, oder ihm fehlt der Scope, den der Endpunkt braucht (die Antwort nennt ihn).
- Jeder Fehler, von jedem Endpunkt, hat dieselbe JSON-Form: RFC 9457 „problem details“, mit
errorsauf Feldebene bei einer 400 oder 422. - Limits werden pro Schlüssel über eine gleitende Minute gezählt — standardmäßig je 60 Anfragen für Abfragen, Konfliktprüfungen und Umwandlungen. Jede Antwort enthält
X-RateLimit-LimitundX-RateLimit-Remaining; eine 429 zusätzlichRetry-After. - Abfragen von Beschränkungen liefern nur Daten aus Quellen, deren Lizenz kommerzielle Nutzung und Weiterverbreitung erlaubt. Eine ausgeschlossene Quelle verhält sich so, als existiere sie nicht.
Maschinenlesbare Beschreibung
Die API ist als OpenAPI 3.1 beschrieben, erzeugt aus denselben Schemas, mit denen die API Anfragen validiert, sodass ein Client-Generator mit ihr Schritt hält. Ein Health-Check antwortet ohne Schlüssel, und beide sind in einem API-Katalog nach RFC 9727 aufgeführt:
GET https://geopilot.space/api/v1/public/openapi.json GET https://geopilot.space/api/v1/public/health GET https://geopilot.space/.well-known/api-catalog
Die API gibt wieder, was nationale Behörden veröffentlichen, mit Datum. Sie genehmigt keinen Flug, und Ihre Nutzer sollten darauf hingewiesen werden.
Häufig gestellte Fragen
- Gibt es eine kostenlose Stufe?
- Nein, aber Sie können Zugang beantragen, um die API vor einem Abonnement zu testen oder ein individuelles Limit anzufragen.
- Deckt die API jedes Land auf der Karte ab?
- Sie deckt die Quellen ab, deren Lizenz kommerzielle Nutzung und Weiterverbreitung erlaubt. Zonen aus anderen Quellen bleiben auf der Karte, werden aber nicht über die API ausgeliefert.
- Brauche ich zusätzlich einen Kartentarif?
- Nein. Der API-Zugang wird eigenständig abgerechnet; ein Konto braucht nur API-Zugang, um Schlüssel zu erstellen.
Verwandte Ratgeber
- So wandeln Sie ED-269- und ED-318-Geozonen in GeoJSON oder KML umWandeln Sie UAS-Geozonendaten mit einem API-Aufruf zwischen ED-269, ED-318, KML und GeoJSON um: benötigte Scopes, die Anfrage, Fehler und Warnungen lesen.
- ED-269 vs. ED-318: die beiden UAS-Geozonen-Formate, Feld für Feld verglichenWie sich die UAS-Geozonen-Formate ED-269 und ED-318 Feld für Feld unterscheiden, mit den Fallen echter nationaler Daten und ihrer Umwandlung.
- Flugverbotszonen für Drohnen erklärt: So funktionieren geografische UAS-GebieteWas geografische UAS-Gebiete sind, wer sie veröffentlicht und wie man sie liest: verbotene, genehmigungspflichtige und bedingte Zonen, Höhen, Zeiten.