API-dokumentaatio
Tiivis dokumentaatio GeoPilotin julkisesta API:sta – jokainen alla oleva päätepiste on polussa /api/v1/public GeoPilot-asennuksesi verkkotunnuksessa, ja tunnistautuminen tapahtuu API-avaimella istuntoevästeen sijaan.
Miten ED-269 ja ED-318 eroavat kenttä kentältä: lue opas. →
Droonien lentokieltoalueiden API: aloitus →
Näin muunnat ED-269- ja ED-318-geovyöhykkeet GeoJSON- tai KML-muotoon →
Koneluettava: OpenAPI 3.1 -kuvaus →
Muutoshistoria
Mitä julkisessa API:ssa on muuttunut, uusin ensin. Muutos merkitään rikkovaksi vain, jos olemassa oleva, oikein muodostettu pyyntö toimii nyt eri tavalla; kaikki muu on lisäys tai korjaus.
Ristiriitatarkistukset kertovat nyt pois jätetyt lähteet
POST /restrictions/intersect -vastauksissa on uusi excludedSources-taulukko: jokainen API:lle lisensoimaton lähde, jonka rajoituksiin muoto myös osuu, lukumäärän kanssa mutta ilman itse rajoituksia. Aiemmin tarkistus tällaisessa maassa palautti total: 0, mikä näytti vapaalta alueelta. Jokaisessa ristiriidassa on myös sourceAttribution, lähteen maininta, joka CC BY -tiedoissa on näytettävä.
OpenAPI-kuvaus ja API-luettelo julkaistu
Julkinen API on nyt kuvattu OpenAPI 3.1 -muodossa osoitteessa /api/v1/public/openapi.json, generoituna samoista skeemoista, joilla API validoi pyynnöt, ja se on listattu RFC 9727 -luettelossa osoitteessa /.well-known/api-catalog. Elossaolon tarkistava päätepiste GET /api/v1/public/health vastaa ilman avainta. Mikään olemassa oleva pyyntö ei toimi eri tavalla.
ED-318-muunnokset korjattu kahta todellista syötettä vasten
ED-318-koodekki oli rakennettu julkaistun skeeman pohjalta ilman todellista syötettä, jota vasten sitä olisi voinut tarkistaa. Se on nyt varmennettu suoraan todellisia vientejä vasten, ja useat kenttämääritykset olivat virheellisiä: luparvon kirjoitusasu, missä korkeus kulkee (geometriassa, ei ominaisuuksissa) ja miten monitilavuuksisen vyöhykkeen geometria esitetään. Mikä tahansa muunnos ED-318:aan tai siitä – ed269-ed318, kml-ed318, geojson-ed318 ja niiden vastakkaiset suunnat – voi palauttaa todelliselle ED-318-asiakirjalle erilaisen, korjatun tuloksen kuin ennen tätä korjausta.
Avaimen hankkiminen
API-käyttö on karttatilauksesta erillinen tuote, joka laskutetaan erikseen ja jota hallinnoit itse, kun tililläsi on se.
Uusi käyttäjä? Tilaa API-käyttö
Haluatko kokeilla ennen ostamista tai tarvitsetko räätälöidyn käyttörajan? Hae käyttöoikeutta
Onko sinulla jo tilaus? Luo avain profiilistasi – nimeä se, valitse vain tarvitsemasi käyttöoikeudet ja kopioi avain, kun se näytetään, sillä se näytetään vain kerran. Hallinnoi API-avaimia
Tunnistautuminen
Jokainen pyyntö sisältää avaimesi bearer-tunnisteena.
Authorization: Bearer <your-api-key>Kaksi virhetilaa erotetaan toisistaan:
- Puuttuva, virheellisesti muodostettu, tuntematon, mitätöity tai vanhentunut avain – 401 Unauthorized.
- Kelvollinen avain, jonka omistajan API-käyttöoikeus on päättynyt (tilaus peruttu tai vanhentunut) – 403 Forbidden.
- Kelvollinen avain, jolla ei ole päätepisteen edellyttämää käyttöoikeutta – 403 Forbidden, puuttuva käyttöoikeus nimettynä.
Käyttöoikeudet
Jokaiselle avaimelle annetaan yksi tai useampi käyttöoikeus (scope). Pyyntö tarvitsee päätepisteensä edellyttämän käyttöoikeuden riippumatta siitä, onko tilillä ylipäätään API-käyttöoikeutta.
- RESTRICTIONS_READ
- Lue ilmatilarajoitustietoja – listaus-, piste-, säde- ja yksittäisen rajoituksen haut.
- CONFLICT_CHECK
- Vertaa piirrettyä aluetta tai reittiä voimassa oleviin rajoituksiin.
- CONVERT_ED269
- Muunna ED-269:n ja GeoJSONin välillä.
- CONVERT_KML
- Muunna KML:n ja minkä tahansa muun tuetun muodon välillä.
- CONVERT_ED318
- Muunna ED-318:n ja minkä tahansa muun tuetun muodon välillä.
Käyttörajat
Jokainen alla oleva raja lasketaan avainkohtaisesti liukuvassa yhden minuutin ikkunassa. Jokainen vastaus sisältää otsakkeet X-RateLimit-Limit ja X-RateLimit-Remaining; 429-vastaus sisältää lisäksi Retry-After-otsakkeen.
- Muunnos
- /convert/ed269-to-geojson, /convert/geojson-to-ed269, /convert/:from-:to
- 60 pyyntöä minuutissa (oletus).
- Rajoitusten luku
- /restrictions, /at, /near, /:id
- 60 pyyntöä ja 200 Mt minuutissa (oletus).
- Ristiriitatarkistus
- /restrictions/intersect
- 60 pyyntöä minuutissa (oletus).
Tarvitsetko korkeamman rajan tiettyä integraatiota varten? Hae käyttöoikeutta
Virheet
Jokainen virhe – jokaisesta päätepisteestä – on samanmuotoinen JSON (RFC 9457 "problem details"), joten asiakasohjelmasi voi käsitellä virheet yhdellä polulla sen sijaan, että arvailisi päätepisteittäin.
{
"type": "https://geopilot.space/problems/forbidden",
"title": "Insufficient permissions",
"status": 403,
"detail": "This API key does not have the CONFLICT_CHECK scope.",
"instance": "/api/v1/public/restrictions/intersect",
"requestId": "b3f2b8b0-8b7a-4c9b-9c9a-2f6a7a2b6b34"
}errors luettelee kenttäkohtaiset validointivirheet ja esiintyy vain 400- tai 422-vastauksessa.
- 400
- Pyynnön runko, kysely tai parametrit eivät läpäisseet validointia.
- 401
- Puuttuva, virheellisesti muodostettu, tuntematon, mitätöity tai vanhentunut avain.
- 403
- Avaimen omistajalla ei enää ole voimassa olevaa API-käyttöoikeutta, tai avaimelta puuttuu päätepisteen edellyttämä käyttöoikeus.
- 404
- Pyydettyä resurssia ei ole olemassa tai se ei näy avaimellesi – katso yllä oleva lisenssihuomautus.
- 422
- Lähetetty geometria on virheellinen tai liian monimutkainen arvioitavaksi.
- 429
- Käyttöraja ylitetty. Yritä uudelleen Retry-After-otsakkeessa annetun sekuntimäärän jälkeen.
Maat, joita API palvelee
API palvelee vain tietoja lähteistä, joiden julkaisijat sallivat kaupallisen uudelleenkäytön ja edelleenjakelun, joten se kattaa vähemmän maita kuin kartta. Muualla rajoitusten luku ei palauta mitään, ja ristiriitatarkistus luettelee pois jätetyt lähteet kohdassa excludedSources sen sijaan, että ilmoittaisi alueen vapaaksi.
- Mukana:
- Australia, Suomi, Luxemburg, Norja, Sveitsi, Yhdysvallat
- Vain kartalla (uudelleenkäyttöehdot selvittämättä):
- Latvia, Portugali, Romania
Päätepisteet
Rajoitusten luku palauttaa tietoja vain lähteistä, joiden lisenssi sallii kaupallisen käytön ja edelleenjakelun. Näillä perusteilla pois suljettu lähde käyttäytyy kuin sitä ei olisi olemassa: GET /restrictions/:id palauttaa sille 404-vastauksen täsmälleen kuten tuntemattomalle tunnisteelle. Ristiriitatarkistus on ainoa poikkeus: se nimeää pois jättämänsä kohdassa excludedSources, joten pois suljettua maata ei koskaan ilmoiteta vapaaksi.
GET /api/v1/public/restrictions
Scope: RESTRICTIONS_READ
Listaa rajoitukset, suodatettavissa maan, rajauslaatikon, tyypin, vaikutuksen ja muiden mukaan.
curl "https://geopilot.space/api/v1/public/restrictions?country=FI" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Vastaus
{
"meta": {
"freshness": {
"state": "FRESH",
"sources": [{ "sourceId": "fi-traficom-zones", "state": "FRESH", "lastSyncedAt": "2026-09-01T09:00:00.000Z" }],
"generatedAt": "2026-09-01T12:00:00.000Z"
},
"pagination": { "limit": 1000, "nextCursor": null, "returned": 214, "truncated": false },
"detail": "FULL",
"attributions": ["Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified."],
"sources": [
{
"id": "fi-traficom-zones",
"providerKey": "fi-traficom-zones",
"name": "Traficom UAS geographical zones",
"attribution": "Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified.",
"sourceTimestamp": "2026-09-01T06:00:00.000Z",
"lastSyncedAt": "2026-09-01T09:00:00.000Z"
}
],
"authorities": [{ "id": "traficom", "name": "Traficom", "phone": null, "email": null, "website": null }],
"evaluatedAt": "2026-09-01T12:00:00.000Z",
"disclaimer": "GeoPilot is an independent planning tool and is not affiliated with or endorsed by any aviation authority. It shows data published by national authorities, which may be incomplete, out of date or simplified in processing, and it does not authorize any flight. Always check the authority's own publication and current NOTAMs before flying."
},
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"countryIso2": "FI",
"name": "Example aerodrome UAS zone",
"description": null,
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"lowerLimit": { "meters": 0, "datum": "GND", "raw": "GND", "parsed": true },
"upperLimit": { "meters": 1500, "datum": "AMSL", "raw": "1500 AMSL", "parsed": true },
"activationStart": null,
"activationEnd": null,
"schedule": null,
"activeNow": true,
"sourceId": "fi-traficom-zones",
"authorityId": "traficom",
"firstSeenAt": "2025-01-15T00:00:00.000Z",
"lastSeenAt": "2026-09-01T09:00:00.000Z"
}
}
]
}
}GET /api/v1/public/restrictions/at
Scope: RESTRICTIONS_READ
Kaikki API:n tiedoissa yhteen pisteeseen pinoutuvat rajoitukset.
curl "https://geopilot.space/api/v1/public/restrictions/at?lat=60.32&lon=24.95" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Vastaus
{
"meta": { "…": "same shape as GET /restrictions, above" },
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"name": "Example aerodrome UAS zone",
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"activeNow": true,
"sourceId": "fi-traficom-zones",
"authorityId": "traficom"
}
}
]
}
}GET /api/v1/public/restrictions/near
Scope: RESTRICTIONS_READ
Rajoitukset pisteen ympärillä annetun säteen sisällä, lähin ensin.
curl "https://geopilot.space/api/v1/public/restrictions/near?lat=60.32&lon=24.95&radiusMeters=5000" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Vastaus
{
"meta": { "…": "same shape as GET /restrictions, above" },
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"name": "Example aerodrome UAS zone",
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"activeNow": true,
"sourceId": "fi-traficom-zones",
"authorityId": "traficom",
"distanceMeters": 842.6
}
}
]
}
}GET /api/v1/public/restrictions/:id
Scope: RESTRICTIONS_READ
Yksi rajoitus tunnisteen perusteella.
curl "https://geopilot.space/api/v1/public/restrictions/3f1b2c4d-0000-4000-8000-000000000000" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Vastaus
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"countryIso2": "FI",
"name": "Example aerodrome UAS zone",
"description": null,
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"lowerLimit": { "meters": 0, "datum": "GND", "raw": "GND", "parsed": true },
"upperLimit": { "meters": 1500, "datum": "AMSL", "raw": "1500 AMSL", "parsed": true },
"activationStart": null,
"activationEnd": null,
"schedule": null,
"activeNow": true,
"authority": { "id": "traficom", "name": "Traficom", "phone": null, "email": null, "website": null },
"source": {
"id": "fi-traficom-zones",
"providerKey": "fi-traficom-zones",
"name": "Traficom UAS geographical zones",
"attribution": "Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified.",
"sourceTimestamp": "2026-09-01T06:00:00.000Z",
"lastSyncedAt": "2026-09-01T09:00:00.000Z"
},
"raw": { "…": "the provider's original record, preserved verbatim" },
"firstSeenAt": "2025-01-15T00:00:00.000Z",
"lastSeenAt": "2026-09-01T09:00:00.000Z"
}
}POST /api/v1/public/restrictions/intersect
Scope: CONFLICT_CHECK
Vertaa monikulmiota tai reittiä voimassa oleviin rajoituksiin ja raportoi, mihin se osuu.
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": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]]
}
}'Vastaus
{
"conflicts": [
{
"restrictionId": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"name": "Example aerodrome UAS zone",
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"authorityName": "Traficom",
"intersectionAreaM2": 482310.5,
"intersectionRatio": 0.61,
"activeAtQueryTime": true,
"sourceName": "Traficom UAS geographical zones",
"sourceAttribution": "Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified."
}
],
"summary": { "total": 1, "prohibited": 0, "authorizationRequired": 1, "coordinationRequired": 0, "informationOnly": 0, "unknown": 0 },
"evaluatedAt": "2026-09-01T12:00:00.000Z",
"disclaimer": "GeoPilot is an independent planning tool and is not affiliated with or endorsed by any aviation authority. It shows data published by national authorities, which may be incomplete, out of date or simplified in processing, and it does not authorize any flight. Always check the authority's own publication and current NOTAMs before flying.",
"excludedSources": []
}POST /api/v1/public/convert/ed269-to-geojson
Scope: CONVERT_ED269
Muunna julkaistu ED-269-asiakirja GeoJSON FeatureCollectioniksi.
curl -X POST "https://geopilot.space/api/v1/public/convert/ed269-to-geojson" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "document": { "UASZoneVersion": { "...": "the published ED-269 document" } } }'Vastaus
{
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] },
"properties": {
"externalId": "ROU-001",
"name": "Example zone",
"description": null,
"type": "OTHER",
"effect": "PROHIBITED",
"effectBasis": "PROVIDER_RULE",
"lowerLimit": { "meters": 0, "datum": "AGL", "display": "0 m AGL" },
"upperLimit": { "meters": 120, "datum": "AGL", "display": "120 m AGL" },
"activationStart": null,
"activationEnd": null,
"schedule": null,
"authorityHint": null
}
}
]
},
"errors": [],
"totalFeatures": 1
}POST /api/v1/public/convert/geojson-to-ed269
Scope: CONVERT_ED269
Muunna GeoJSON Feature tai FeatureCollection ED-269-asiakirjaksi.
curl -X POST "https://geopilot.space/api/v1/public/convert/geojson-to-ed269" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "Feature",
"geometry": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] },
"properties": { "name": "Example zone", "effect": "PROHIBITED" }
}'Vastaus
{
"document": {
"title": "GeoPilot ED-269 export",
"description": "Generated by GeoPilot's GeoJSON → ED-269 conversion endpoint.",
"features": [
{
"name": "Example zone",
"type": "CUSTOMIZED",
"restriction": "PROHIBITED",
"applicability": [],
"zoneAuthority": [],
"geometry": [
{
"uomDimensions": "M",
"horizontalProjection": {
"type": "Polygon",
"coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]]
}
}
]
}
]
},
"warnings": []
}Päätepisteet — /convert/:from-:to
Yllä olevien kahden ED-269⇄GeoJSON-päätepisteen lisäksi POST /convert/:from-:to muuntaa minkä tahansa kahden muodon välillä (ED-269, ED-318, KML ja GeoJSON) – yhteensä kaksitoista suunnattua paria, jotka on lueteltu alla kunkin edellyttämine käyttöoikeuksineen. Tämän lyhyen URL-osoitteen ed269-geojson ja geojson-ed269 toimivat täsmälleen samoin kuin yllä olevat kaksi erillistä päätepistettä ja ovat käytössä niiden rinnalla; molemmat muodot toimivat edelleen.
| from | to | scope(s) required |
|---|---|---|
| ed269 | ed318 | CONVERT_ED269 + CONVERT_ED318 |
| ed269 | kml | CONVERT_ED269 + CONVERT_KML |
| ed269 | geojson | CONVERT_ED269 |
| ed318 | ed269 | CONVERT_ED318 + CONVERT_ED269 |
| ed318 | kml | CONVERT_ED318 + CONVERT_KML |
| ed318 | geojson | CONVERT_ED318 |
| kml | ed269 | CONVERT_KML + CONVERT_ED269 |
| kml | ed318 | CONVERT_KML + CONVERT_ED318 |
| kml | geojson | CONVERT_KML |
| geojson | ed269 | CONVERT_ED269 |
| geojson | ed318 | CONVERT_ED318 |
| geojson | kml | CONVERT_KML |
POST /api/v1/public/convert/ed269-kml
Scope: CONVERT_ED269 + CONVERT_KML
Muunna julkaistu ED-269-asiakirja KML-asiakirjaksi.
curl -X POST "https://geopilot.space/api/v1/public/convert/ed269-kml" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "document": { "title": "t", "features": [ { "identifier": "ROU-001", "name": "Example zone", "restriction": "PROHIBITED", "geometry": [ { "uomDimensions": "M", "horizontalProjection": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] } } ] } ] } }'Vastaus
{
"document": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<kml xmlns=\"http://www.opengis.net/kml/2.2\">\n <Document>\n <Placemark>\n <name>Example zone</name>\n <ExtendedData>\n <Data name=\"effect\"><value>PROHIBITED</value></Data>\n </ExtendedData>\n <Polygon>\n <altitudeMode>clampToGround</altitudeMode>\n <outerBoundaryIs><LinearRing><coordinates>26.05,44.40,0 26.15,44.40,0 26.15,44.47,0 26.05,44.47,0 26.05,44.40,0</coordinates></LinearRing></outerBoundaryIs>\n </Polygon>\n </Placemark>\n </Document>\n</kml>",
"errors": [],
"totalFeatures": 1,
"warnings": []
}POST /api/v1/public/convert/kml-ed318
Scope: CONVERT_KML + CONVERT_ED318
Muunna KML-asiakirja ED-318-asiakirjaksi.
curl -X POST "https://geopilot.space/api/v1/public/convert/kml-ed318" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "document": "<kml><Document><Placemark><name>Example zone</name><ExtendedData><Data name=\"effect\"><value>PROHIBITED</value></Data></ExtendedData><Polygon><outerBoundaryIs><LinearRing><coordinates>26.05,44.40,0 26.15,44.40,0 26.15,44.47,0 26.05,44.47,0 26.05,44.40,0</coordinates></LinearRing></outerBoundaryIs></Polygon></Placemark></Document></kml>" }'Vastaus
{
"document": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] },
"properties": {
"name": "Example zone",
"type": "CUSTOMIZED",
"restriction": "PROHIBITED",
"applicability": [],
"zoneAuthority": [],
"uomDimensions": "M"
}
}
]
},
"errors": [],
"totalFeatures": 1,
"warnings": []
}