API de zonas proibidas para drones: primeiros passos
Atualizado
A API pública do GeoPilot disponibiliza os dados de zonas para drones do mapa para cada fonte cuja licença permita a redistribuição, em GeoJSON sobre HTTPS. Envie a sua chave de API como token bearer para /api/v1/public e pode listar zonas por país ou área, perguntar que zonas se aplicam num ponto ou num raio, verificar uma área ou rota de voo e converter entre ED-269, ED-318, KML e GeoJSON. O acesso à API é um produto separado dos planos do mapa.
Obter uma chave
- Subscreva na página Acesso à API — ou, para experimentar primeiro ou pedir um limite mais alto, candidate-se ao acesso.
- No seu perfil, abra o separador Acesso à API e crie uma chave: dê-lhe um nome e escolha apenas os âmbitos de que precisa.
- Copie a chave quando for apresentada. Só é mostrada uma vez; se a perder, revogue-a e crie outra.
| Âmbito | Permite |
|---|---|
RESTRICTIONS_READ | Listar zonas, consultas por ponto e por raio, uma zona por id |
CONFLICT_CHECK | Verificar uma área ou rota face às zonas ativas |
CONVERT_ED269 | Converter de ou para ED-269 |
CONVERT_ED318 | Converter de ou para ED-318 |
CONVERT_KML | Converter de ou para KML |
O seu primeiro pedido: o que se aplica aqui?
Guarde a chave numa variável de ambiente e peça todas as zonas num ponto:
curl "https://geopilot.space/api/v1/public/restrictions/at?lat=44.43&lon=26.10" \ -H "Authorization: Bearer $GEOPILOT_API_KEY"
A resposta é uma FeatureCollection GeoJSON com um bloco meta ao lado. Cada elemento inclui o effect da zona (PROHIBITED, AUTHORIZATION_REQUIRED, COORDINATION_REQUIRED, INFORMATION_ONLY ou UNKNOWN), o respetivo type, se está activeNow e os ids da fonte e da autoridade — os mesmos factos que o painel de clique do mapa mostra.
Os endpoints
| Pedido | Devolve | Âmbito |
|---|---|---|
GET /restrictions | Zonas filtradas por país, caixa delimitadora, tipo, efeito… | RESTRICTIONS_READ |
GET /restrictions/at | Todas as zonas sobrepostas num ponto | RESTRICTIONS_READ |
GET /restrictions/near | Zonas dentro de um raio, das mais próximas para as mais distantes | RESTRICTIONS_READ |
GET /restrictions/:id | Uma zona | RESTRICTIONS_READ |
POST /restrictions/intersect | O que uma área ou rota interseta | CONFLICT_CHECK |
POST /convert/:from-:to | Um documento noutro formato | Consulte o guia de conversão |
Verificar uma área de voo
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]]]}}'A resposta lista cada zona que a forma interseta, com o respetivo efeito, se está ativa no momento avaliado, intersectionAreaM2 e intersectionRatio (a parte da sua área que cobre; null para uma rota), além de um summary com contagens por efeito. Passe activeAt para avaliar um momento futuro. Tal como o mapa, lista e não tira conclusões — não existe nenhum campo “permitido”, propositadamente.
Erros, limites e licenças
- 401 — a chave está em falta, mal formada, é desconhecida, foi revogada ou expirou. 403 — a chave é válida, mas o acesso à API do titular caducou, ou não tem o âmbito de que o endpoint precisa (a resposta indica-o).
- Todos os erros, de todos os endpoints, têm uma única estrutura JSON: problem details do RFC 9457, com
errorsao nível dos campos numa resposta 400 ou 422. - Os limites são contabilizados por chave numa janela móvel de um minuto — 60 pedidos por predefinição para cada categoria: leituras, verificações de conflitos e conversões. Todas as respostas incluem
X-RateLimit-LimiteX-RateLimit-Remaining; uma resposta 429 acrescentaRetry-After. - As leituras de restrições só devolvem dados de fontes cuja licença permita a utilização comercial e a redistribuição. Uma fonte excluída comporta-se como se não existisse.
Descrição legível por máquina
A API está descrita em OpenAPI 3.1, gerada a partir dos mesmos esquemas com que a API valida os pedidos, para que um gerador de clientes se mantenha sincronizado com ela. Uma sonda de disponibilidade responde sem chave, e ambas estão listadas num catálogo de API RFC 9727:
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
A API indica o que as autoridades nacionais publicam, com datas. Não autoriza nenhum voo, e os seus utilizadores devem ser informados disso.
Perguntas frequentes
- Existe um escalão gratuito?
- Não, mas pode candidatar-se ao acesso para experimentar antes de subscrever ou para pedir um limite personalizado.
- A API abrange todos os países do mapa?
- Abrange as fontes cuja licença permite a utilização comercial e a redistribuição. As zonas de outras fontes continuam no mapa, mas não são disponibilizadas através da API.
- Também preciso de um plano do mapa?
- Não. O acesso à API é faturado à parte; uma conta só precisa de acesso à API para criar chaves.
Guias relacionados
- Como converter zonas geográficas ED-269 e ED-318 para GeoJSON ou KMLConverta dados de zonas UAS entre ED-269, ED-318, KML e GeoJSON com uma chamada à API: os âmbitos necessários, o pedido e como ler erros e avisos.
- ED-269 vs ED-318: os dois formatos de zonas geográficas UAS, comparados campo a campoComo diferem os formatos de zonas UAS ED-269 e ED-318, campo a campo, com as armadilhas encontradas em feeds nacionais reais e como convertê-los.
- Zonas proibidas para drones: como funcionam as zonas geográficas UASO que são as zonas geográficas UAS, quem as publica e como ler uma: zonas proibidas, com autorização e condicionadas, limites de altura e horários.