- C1 alterado: z[nid] <= 1 -> z[nid] == 1 para todas as missoes; toda missao deve ser coberta por exatamente 1 aeronave (sem missoes descobertas). - n_missoes padrao reduzido de 50 para 20 (n_evam de 5 para 4): garante factibilidade do MIP com Set Partitioning no envelope de 4 aeronaves. - Time limit padrao do solver CBC fixado em 120 s (era ilimitado): evita travamento ao tentar provar infeasibility. - Corrigido display "Not Solved": status de L1 preservado quando PuLP redefine mdl.status apos setObjective() em L2. - f0_cenario_insp_grande.json revisado: apenas 2803 com f0=595h em INSP 2A (F_max=600h, downtime=4 dias); demais matriculas com f0=0. - Gerado planejamento_insp_grande.html: Gantt exibe INSP 2A visivelmente; 20/20 missoes cobertas; CBC Optimal em < 15 s. - changelog.md e LOG.md atualizados com limitacoes detalhadas para contribuidores: escopo validado, bugs de display, riscos numericos do big-M com LRT < 5h e comportamento de 2811 ociosa. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1120 lines
78 KiB
HTML
1120 lines
78 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="pt-BR">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Planejamento de Diagonal de Manutenção</title>
|
||
<style>
|
||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||
body { font-family: 'Segoe UI', Arial, sans-serif; background: #f0f2f5; color: #222; }
|
||
header {
|
||
background: #1a3a5c; color: white;
|
||
padding: 18px 32px;
|
||
border-bottom: 4px solid #c8a400;
|
||
}
|
||
header h1 { font-size: 1.5rem; font-weight: 700; letter-spacing: 0.03em; }
|
||
header p { font-size: 0.85rem; opacity: 0.75; margin-top: 4px; }
|
||
.container { padding: 24px 32px; max-width: 1600px; margin: 0 auto; }
|
||
.section {
|
||
background: white; border-radius: 8px;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.12);
|
||
margin-bottom: 28px; overflow: hidden;
|
||
}
|
||
.section-title {
|
||
background: #f7f8fa; border-bottom: 1px solid #e0e0e0;
|
||
padding: 12px 20px; font-size: 0.95rem; font-weight: 600;
|
||
color: #1a3a5c; text-transform: uppercase; letter-spacing: 0.05em;
|
||
}
|
||
.section-body { padding: 16px; }
|
||
iframe.mapa {
|
||
width: 100%; height: 560px; border: none; border-radius: 4px; display: block;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<h1>Planejamento de Diagonal de Manutenção</h1>
|
||
<p>Esquadrão Arara · C-105 · OAMRP v3</p>
|
||
</header>
|
||
<div class="container">
|
||
<div class="section">
|
||
<div class="section-title">Calendário de Emprego das Aeronaves</div>
|
||
<div class="section-body"><div> <script>window.PlotlyConfig = {MathJaxConfig: 'local'};</script>
|
||
<script charset="utf-8" src="https://cdn.plot.ly/plotly-3.5.0.min.js" integrity="sha256-fHbNLP+GlIXN+efbQec78UkemUz3NJp7UmfGxC1tNxs=" crossorigin="anonymous"></script> <div id="9bae6b44-6f4b-49a4-bcc3-d06246a70d77" class="plotly-graph-div" style="height:440px; width:100%;"></div> <script> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("9bae6b44-6f4b-49a4-bcc3-d06246a70d77")) { Plotly.newPlot( "9bae6b44-6f4b-49a4-bcc3-d06246a70d77", [{"marker":{"color":"#d62728","size":12,"symbol":"square"},"mode":"markers","name":"Prio 1","showlegend":true,"x":[null],"y":[null],"type":"scatter"},{"marker":{"color":"#ff7f0e","size":12,"symbol":"square"},"mode":"markers","name":"Prio 2","showlegend":true,"x":[null],"y":[null],"type":"scatter"},{"marker":{"color":"#2ca02c","size":12,"symbol":"square"},"mode":"markers","name":"Prio 3","showlegend":true,"x":[null],"y":[null],"type":"scatter"},{"marker":{"color":"#1f77b4","size":12,"symbol":"square"},"mode":"markers","name":"Prio 4","showlegend":true,"x":[null],"y":[null],"type":"scatter"},{"marker":{"color":"#9467bd","size":12,"symbol":"square"},"mode":"markers","name":"Prio 5","showlegend":true,"x":[null],"y":[null],"type":"scatter"},{"marker":{"color":"#8c564b","size":12,"symbol":"square"},"mode":"markers","name":"Inspe\u00e7\u00e3o","showlegend":true,"x":[null],"y":[null],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSBMN \u2192 SBCO\u003cbr\u003eOM: 7 | Prio: 1\u003cbr\u003ePartida: 2025-01-09 02:09Z\u003cbr\u003eChegada: 2025-01-09 07:58Z\u003cbr\u003eDura\u00e7\u00e3o: 5.82h","\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSBMN \u2192 SBCO\u003cbr\u003eOM: 7 | Prio: 1\u003cbr\u003ePartida: 2025-01-09 02:09Z\u003cbr\u003eChegada: 2025-01-09 07:58Z\u003cbr\u003eDura\u00e7\u00e3o: 5.82h"],"line":{"color":"#d62728","width":64},"mode":"lines","showlegend":false,"x":["2025-01-09T02:09:28.800000+00:00","2025-01-09T07:58:40.800000+00:00"],"y":[0,0],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #2\u003cbr\u003eSBCY \u2192 SBMN\u003cbr\u003eOM: 10 | Prio: 3\u003cbr\u003ePartida: 2025-01-11 23:29Z\u003cbr\u003eChegada: 2025-01-12 03:09Z\u003cbr\u003eDura\u00e7\u00e3o: 3.67h","\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #2\u003cbr\u003eSBCY \u2192 SBMN\u003cbr\u003eOM: 10 | Prio: 3\u003cbr\u003ePartida: 2025-01-11 23:29Z\u003cbr\u003eChegada: 2025-01-12 03:09Z\u003cbr\u003eDura\u00e7\u00e3o: 3.67h"],"line":{"color":"#2ca02c","width":64},"mode":"lines","showlegend":false,"x":["2025-01-11T23:29:27.600000+00:00","2025-01-12T03:09:39.600000+00:00"],"y":[0,0],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #3\u003cbr\u003eSWCA \u2192 SBTT\u003cbr\u003eOM: 12 | Prio: 3\u003cbr\u003ePartida: 2025-01-12 14:52Z\u003cbr\u003eChegada: 2025-01-12 16:14Z\u003cbr\u003eDura\u00e7\u00e3o: 1.38h","\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #3\u003cbr\u003eSWCA \u2192 SBTT\u003cbr\u003eOM: 12 | Prio: 3\u003cbr\u003ePartida: 2025-01-12 14:52Z\u003cbr\u003eChegada: 2025-01-12 16:14Z\u003cbr\u003eDura\u00e7\u00e3o: 1.38h"],"line":{"color":"#2ca02c","width":64},"mode":"lines","showlegend":false,"x":["2025-01-12T14:52:01.200000+00:00","2025-01-12T16:52:01.200000+00:00"],"y":[0,0],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #4\u003cbr\u003eSBMN \u2192 SWCA\u003cbr\u003eOM: 19 | Prio: 1\u003cbr\u003ePartida: 2025-01-29 04:57Z\u003cbr\u003eChegada: 2025-01-29 06:36Z\u003cbr\u003eDura\u00e7\u00e3o: 1.65h","\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #4\u003cbr\u003eSBMN \u2192 SWCA\u003cbr\u003eOM: 19 | Prio: 1\u003cbr\u003ePartida: 2025-01-29 04:57Z\u003cbr\u003eChegada: 2025-01-29 06:36Z\u003cbr\u003eDura\u00e7\u00e3o: 1.65h"],"line":{"color":"#d62728","width":64},"mode":"lines","showlegend":false,"x":["2025-01-29T04:57:54+00:00","2025-01-29T06:57:54+00:00"],"y":[0,0],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #5\u003cbr\u003eSWCA \u2192 SBCO\u003cbr\u003eOM: 20 | Prio: 2\u003cbr\u003ePartida: 2025-01-31 03:09Z\u003cbr\u003eChegada: 2025-01-31 08:39Z\u003cbr\u003eDura\u00e7\u00e3o: 5.51h","\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Miss\u00e3o #5\u003cbr\u003eSWCA \u2192 SBCO\u003cbr\u003eOM: 20 | Prio: 2\u003cbr\u003ePartida: 2025-01-31 03:09Z\u003cbr\u003eChegada: 2025-01-31 08:39Z\u003cbr\u003eDura\u00e7\u00e3o: 5.51h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-31T03:09:10.800000+00:00","2025-01-31T08:39:46.800000+00:00"],"y":[0,0],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Inspe\u00e7\u00e3o INSP 2A\u003cbr\u003eIn\u00edcio: 2025-01-12 16:14Z\u003cbr\u003eFim: 2025-01-16 16:14Z\u003cbr\u003eDura\u00e7\u00e3o: 96.00h","\u003cb\u003eFAB 2800\u003c\u002fb\u003e \u2014 Inspe\u00e7\u00e3o INSP 2A\u003cbr\u003eIn\u00edcio: 2025-01-12 16:14Z\u003cbr\u003eFim: 2025-01-16 16:14Z\u003cbr\u003eDura\u00e7\u00e3o: 96.00h"],"line":{"color":"#8c564b","width":64},"mode":"lines","showlegend":false,"x":["2025-01-12T16:14:49.200000+00:00","2025-01-16T16:14:49.200000+00:00"],"y":[0,0],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2803\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSWBC \u2192 SBAN\u003cbr\u003eOM: 6 | Prio: 2\u003cbr\u003ePartida: 2025-01-06 21:08Z\u003cbr\u003eChegada: 2025-01-07 00:56Z\u003cbr\u003eDura\u00e7\u00e3o: 3.80h","\u003cb\u003eFAB 2803\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSWBC \u2192 SBAN\u003cbr\u003eOM: 6 | Prio: 2\u003cbr\u003ePartida: 2025-01-06 21:08Z\u003cbr\u003eChegada: 2025-01-07 00:56Z\u003cbr\u003eDura\u00e7\u00e3o: 3.80h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-06T21:08:24+00:00","2025-01-07T00:56:24+00:00"],"y":[1,1],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSBBE \u2192 SBMN\u003cbr\u003eOM: 1 | Prio: 2\u003cbr\u003ePartida: 2025-01-02 07:53Z\u003cbr\u003eChegada: 2025-01-02 11:07Z\u003cbr\u003eDura\u00e7\u00e3o: 3.23h","\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSBBE \u2192 SBMN\u003cbr\u003eOM: 1 | Prio: 2\u003cbr\u003ePartida: 2025-01-02 07:53Z\u003cbr\u003eChegada: 2025-01-02 11:07Z\u003cbr\u003eDura\u00e7\u00e3o: 3.23h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-02T07:53:34.800000+00:00","2025-01-02T11:07:22.800000+00:00"],"y":[2,2],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #2\u003cbr\u003eSBPV \u2192 SBOI\u003cbr\u003eOM: 2 | Prio: 3\u003cbr\u003ePartida: 2025-01-03 03:03Z\u003cbr\u003eChegada: 2025-01-03 09:37Z\u003cbr\u003eDura\u00e7\u00e3o: 6.58h","\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #2\u003cbr\u003eSBPV \u2192 SBOI\u003cbr\u003eOM: 2 | Prio: 3\u003cbr\u003ePartida: 2025-01-03 03:03Z\u003cbr\u003eChegada: 2025-01-03 09:37Z\u003cbr\u003eDura\u00e7\u00e3o: 6.58h"],"line":{"color":"#2ca02c","width":64},"mode":"lines","showlegend":false,"x":["2025-01-03T03:03:10.800000+00:00","2025-01-03T09:37:58.800000+00:00"],"y":[2,2],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #3\u003cbr\u003eSBMY \u2192 SBYS\u003cbr\u003eOM: 5 | Prio: 1\u003cbr\u003ePartida: 2025-01-04 19:37Z\u003cbr\u003eChegada: 2025-01-05 01:06Z\u003cbr\u003eDura\u00e7\u00e3o: 5.49h","\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #3\u003cbr\u003eSBMY \u2192 SBYS\u003cbr\u003eOM: 5 | Prio: 1\u003cbr\u003ePartida: 2025-01-04 19:37Z\u003cbr\u003eChegada: 2025-01-05 01:06Z\u003cbr\u003eDura\u00e7\u00e3o: 5.49h"],"line":{"color":"#d62728","width":64},"mode":"lines","showlegend":false,"x":["2025-01-04T19:37:19.200000+00:00","2025-01-05T01:06:43.200000+00:00"],"y":[2,2],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #4\u003cbr\u003eSBPV \u2192 SBMN\u003cbr\u003eOM: 8 | Prio: 2\u003cbr\u003ePartida: 2025-01-09 23:11Z\u003cbr\u003eChegada: 2025-01-10 00:51Z\u003cbr\u003eDura\u00e7\u00e3o: 1.66h","\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #4\u003cbr\u003eSBPV \u2192 SBMN\u003cbr\u003eOM: 8 | Prio: 2\u003cbr\u003ePartida: 2025-01-09 23:11Z\u003cbr\u003eChegada: 2025-01-10 00:51Z\u003cbr\u003eDura\u00e7\u00e3o: 1.66h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-09T23:11:34.800000+00:00","2025-01-10T01:11:34.800000+00:00"],"y":[2,2],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #5\u003cbr\u003eSBSN \u2192 SBVH\u003cbr\u003eOM: 11 | Prio: 1\u003cbr\u003ePartida: 2025-01-12 01:26Z\u003cbr\u003eChegada: 2025-01-12 04:15Z\u003cbr\u003eDura\u00e7\u00e3o: 2.82h","\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #5\u003cbr\u003eSBSN \u2192 SBVH\u003cbr\u003eOM: 11 | Prio: 1\u003cbr\u003ePartida: 2025-01-12 01:26Z\u003cbr\u003eChegada: 2025-01-12 04:15Z\u003cbr\u003eDura\u00e7\u00e3o: 2.82h"],"line":{"color":"#d62728","width":64},"mode":"lines","showlegend":false,"x":["2025-01-12T01:26:24+00:00","2025-01-12T04:15:36+00:00"],"y":[2,2],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #6\u003cbr\u003eSBTF \u2192 SBMN\u003cbr\u003eOM: 16 | Prio: 3\u003cbr\u003ePartida: 2025-01-24 15:25Z\u003cbr\u003eChegada: 2025-01-24 16:40Z\u003cbr\u003eDura\u00e7\u00e3o: 1.24h","\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Miss\u00e3o #6\u003cbr\u003eSBTF \u2192 SBMN\u003cbr\u003eOM: 16 | Prio: 3\u003cbr\u003ePartida: 2025-01-24 15:25Z\u003cbr\u003eChegada: 2025-01-24 16:40Z\u003cbr\u003eDura\u00e7\u00e3o: 1.24h"],"line":{"color":"#2ca02c","width":64},"mode":"lines","showlegend":false,"x":["2025-01-24T15:25:55.200000+00:00","2025-01-24T17:25:55.200000+00:00"],"y":[2,2],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Inspe\u00e7\u00e3o INSP 2A\u003cbr\u003eIn\u00edcio: 2025-01-05 01:06Z\u003cbr\u003eFim: 2025-01-09 01:06Z\u003cbr\u003eDura\u00e7\u00e3o: 96.00h","\u003cb\u003eFAB 2809\u003c\u002fb\u003e \u2014 Inspe\u00e7\u00e3o INSP 2A\u003cbr\u003eIn\u00edcio: 2025-01-05 01:06Z\u003cbr\u003eFim: 2025-01-09 01:06Z\u003cbr\u003eDura\u00e7\u00e3o: 96.00h"],"line":{"color":"#8c564b","width":64},"mode":"lines","showlegend":false,"x":["2025-01-05T01:06:43.200000+00:00","2025-01-09T01:06:43.200000+00:00"],"y":[2,2],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSBMN \u2192 SBUY\u003cbr\u003eOM: 3 | Prio: 2\u003cbr\u003ePartida: 2025-01-03 09:50Z\u003cbr\u003eChegada: 2025-01-03 16:17Z\u003cbr\u003eDura\u00e7\u00e3o: 6.46h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #1\u003cbr\u003eSBMN \u2192 SBUY\u003cbr\u003eOM: 3 | Prio: 2\u003cbr\u003ePartida: 2025-01-03 09:50Z\u003cbr\u003eChegada: 2025-01-03 16:17Z\u003cbr\u003eDura\u00e7\u00e3o: 6.46h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-03T09:50:20.400000+00:00","2025-01-03T16:17:56.400000+00:00"],"y":[3,3],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #2\u003cbr\u003eSWCA \u2192 SBMN\u003cbr\u003eOM: 4 | Prio: 3\u003cbr\u003ePartida: 2025-01-04 03:01Z\u003cbr\u003eChegada: 2025-01-04 04:51Z\u003cbr\u003eDura\u00e7\u00e3o: 1.84h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #2\u003cbr\u003eSWCA \u2192 SBMN\u003cbr\u003eOM: 4 | Prio: 3\u003cbr\u003ePartida: 2025-01-04 03:01Z\u003cbr\u003eChegada: 2025-01-04 04:51Z\u003cbr\u003eDura\u00e7\u00e3o: 1.84h"],"line":{"color":"#2ca02c","width":64},"mode":"lines","showlegend":false,"x":["2025-01-04T03:01:19.200000+00:00","2025-01-04T05:01:19.200000+00:00"],"y":[3,3],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #3\u003cbr\u003eSBUY \u2192 SBCC\u003cbr\u003eOM: 9 | Prio: 1\u003cbr\u003ePartida: 2025-01-11 12:27Z\u003cbr\u003eChegada: 2025-01-11 17:17Z\u003cbr\u003eDura\u00e7\u00e3o: 4.82h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #3\u003cbr\u003eSBUY \u2192 SBCC\u003cbr\u003eOM: 9 | Prio: 1\u003cbr\u003ePartida: 2025-01-11 12:27Z\u003cbr\u003eChegada: 2025-01-11 17:17Z\u003cbr\u003eDura\u00e7\u00e3o: 4.82h"],"line":{"color":"#d62728","width":64},"mode":"lines","showlegend":false,"x":["2025-01-11T12:27:50.400000+00:00","2025-01-11T17:17:02.400000+00:00"],"y":[3,3],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #4\u003cbr\u003eSBUY \u2192 SBMN\u003cbr\u003eOM: 13 | Prio: 3\u003cbr\u003ePartida: 2025-01-15 01:13Z\u003cbr\u003eChegada: 2025-01-15 07:31Z\u003cbr\u003eDura\u00e7\u00e3o: 6.31h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #4\u003cbr\u003eSBUY \u2192 SBMN\u003cbr\u003eOM: 13 | Prio: 3\u003cbr\u003ePartida: 2025-01-15 01:13Z\u003cbr\u003eChegada: 2025-01-15 07:31Z\u003cbr\u003eDura\u00e7\u00e3o: 6.31h"],"line":{"color":"#2ca02c","width":64},"mode":"lines","showlegend":false,"x":["2025-01-15T01:13:04.800000+00:00","2025-01-15T07:31:40.800000+00:00"],"y":[3,3],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #5\u003cbr\u003eSBBE \u2192 SBUA\u003cbr\u003eOM: 14 | Prio: 2\u003cbr\u003ePartida: 2025-01-20 05:25Z\u003cbr\u003eChegada: 2025-01-20 10:31Z\u003cbr\u003eDura\u00e7\u00e3o: 5.11h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #5\u003cbr\u003eSBBE \u2192 SBUA\u003cbr\u003eOM: 14 | Prio: 2\u003cbr\u003ePartida: 2025-01-20 05:25Z\u003cbr\u003eChegada: 2025-01-20 10:31Z\u003cbr\u003eDura\u00e7\u00e3o: 5.11h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-20T05:25:19.200000+00:00","2025-01-20T10:31:55.200000+00:00"],"y":[3,3],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #6\u003cbr\u003eSBBE \u2192 SBTS\u003cbr\u003eOM: 15 | Prio: 4\u003cbr\u003ePartida: 2025-01-21 05:22Z\u003cbr\u003eChegada: 2025-01-21 10:28Z\u003cbr\u003eDura\u00e7\u00e3o: 5.11h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #6\u003cbr\u003eSBBE \u2192 SBTS\u003cbr\u003eOM: 15 | Prio: 4\u003cbr\u003ePartida: 2025-01-21 05:22Z\u003cbr\u003eChegada: 2025-01-21 10:28Z\u003cbr\u003eDura\u00e7\u00e3o: 5.11h"],"line":{"color":"#1f77b4","width":64},"mode":"lines","showlegend":false,"x":["2025-01-21T05:22:01.200000+00:00","2025-01-21T10:28:37.200000+00:00"],"y":[3,3],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #7\u003cbr\u003eSWBC \u2192 SBCC\u003cbr\u003eOM: 17 | Prio: 2\u003cbr\u003ePartida: 2025-01-27 03:48Z\u003cbr\u003eChegada: 2025-01-27 07:24Z\u003cbr\u003eDura\u00e7\u00e3o: 3.61h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #7\u003cbr\u003eSWBC \u2192 SBCC\u003cbr\u003eOM: 17 | Prio: 2\u003cbr\u003ePartida: 2025-01-27 03:48Z\u003cbr\u003eChegada: 2025-01-27 07:24Z\u003cbr\u003eDura\u00e7\u00e3o: 3.61h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-27T03:48:10.800000+00:00","2025-01-27T07:24:46.800000+00:00"],"y":[3,3],"type":"scatter"},{"hoverinfo":"text","hovertext":["\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #8\u003cbr\u003eSBMY \u2192 SBPV\u003cbr\u003eOM: 18 | Prio: 2\u003cbr\u003ePartida: 2025-01-28 01:55Z\u003cbr\u003eChegada: 2025-01-28 03:00Z\u003cbr\u003eDura\u00e7\u00e3o: 1.08h","\u003cb\u003eFAB 2811\u003c\u002fb\u003e \u2014 Miss\u00e3o #8\u003cbr\u003eSBMY \u2192 SBPV\u003cbr\u003eOM: 18 | Prio: 2\u003cbr\u003ePartida: 2025-01-28 01:55Z\u003cbr\u003eChegada: 2025-01-28 03:00Z\u003cbr\u003eDura\u00e7\u00e3o: 1.08h"],"line":{"color":"#ff7f0e","width":64},"mode":"lines","showlegend":false,"x":["2025-01-28T01:55:19.200000+00:00","2025-01-28T03:55:19.200000+00:00"],"y":[3,3],"type":"scatter"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermap":[{"type":"scattermap","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"shapes":[{"fillcolor":"#f0f0f0","layer":"below","line":{"width":0},"type":"rect","x0":0,"x1":1,"xref":"x domain","y0":-0.45,"y1":0.45,"yref":"y"},{"fillcolor":"white","layer":"below","line":{"width":0},"type":"rect","x0":0,"x1":1,"xref":"x domain","y0":0.55,"y1":1.45,"yref":"y"},{"fillcolor":"#f0f0f0","layer":"below","line":{"width":0},"type":"rect","x0":0,"x1":1,"xref":"x domain","y0":1.55,"y1":2.45,"yref":"y"},{"fillcolor":"white","layer":"below","line":{"width":0},"type":"rect","x0":0,"x1":1,"xref":"x domain","y0":2.55,"y1":3.45,"yref":"y"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-06T00:00:00+00:00","x1":"2025-01-06T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-07T00:00:00+00:00","x1":"2025-01-07T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-08T00:00:00+00:00","x1":"2025-01-08T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-09T00:00:00+00:00","x1":"2025-01-09T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-10T00:00:00+00:00","x1":"2025-01-10T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-11T00:00:00+00:00","x1":"2025-01-11T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-12T00:00:00+00:00","x1":"2025-01-12T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-13T00:00:00+00:00","x1":"2025-01-13T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-14T00:00:00+00:00","x1":"2025-01-14T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-15T00:00:00+00:00","x1":"2025-01-15T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-16T00:00:00+00:00","x1":"2025-01-16T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-17T00:00:00+00:00","x1":"2025-01-17T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-18T00:00:00+00:00","x1":"2025-01-18T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-19T00:00:00+00:00","x1":"2025-01-19T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-20T00:00:00+00:00","x1":"2025-01-20T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-21T00:00:00+00:00","x1":"2025-01-21T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-22T00:00:00+00:00","x1":"2025-01-22T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-23T00:00:00+00:00","x1":"2025-01-23T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-24T00:00:00+00:00","x1":"2025-01-24T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-25T00:00:00+00:00","x1":"2025-01-25T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-26T00:00:00+00:00","x1":"2025-01-26T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-27T00:00:00+00:00","x1":"2025-01-27T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-28T00:00:00+00:00","x1":"2025-01-28T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-29T00:00:00+00:00","x1":"2025-01-29T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-30T00:00:00+00:00","x1":"2025-01-30T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-01-31T00:00:00+00:00","x1":"2025-01-31T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"},{"layer":"above","line":{"color":"#bbbbbb","dash":"dot","width":1},"type":"line","x0":"2025-02-01T00:00:00+00:00","x1":"2025-02-01T00:00:00+00:00","xref":"x","y0":0,"y1":1,"yref":"paper"}],"xaxis":{"title":{"text":"Data \u002f Hora (UTC)"},"type":"date","tickformat":"%d\u002f%m","dtick":86400000,"showgrid":true,"gridcolor":"#dddddd"},"yaxis":{"title":{"text":"Aeronave"},"tickvals":[0,1,2,3],"ticktext":["FAB 2800","FAB 2803","FAB 2809","FAB 2811"],"showgrid":false,"range":[-0.5,3.5]},"legend":{"title":{"text":"Legenda"},"orientation":"v","x":1.01,"y":1,"xanchor":"left"},"margin":{"l":100,"r":160,"t":10,"b":60},"height":440,"plot_bgcolor":"white","paper_bgcolor":"white","hovermode":"closest"}, {"responsive": true} ) }; </script> </div></div>
|
||
</div>
|
||
<div class="section">
|
||
<div class="section-title">Rotas Operacionais</div>
|
||
<iframe class="mapa" srcdoc="<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
|
||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||
<script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js"></script>
|
||
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"></script>
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css"/>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css"/>
|
||
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css"/>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css"/>
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css"/>
|
||
|
||
<meta name="viewport" content="width=device-width,
|
||
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||
<style>
|
||
#map_a5be9d8f4dc1d784e5f7c257e2f79d32 {
|
||
position: relative;
|
||
width: 100.0%;
|
||
height: 100.0%;
|
||
left: 0.0%;
|
||
top: 0.0%;
|
||
}
|
||
.leaflet-container { font-size: 1rem; }
|
||
</style>
|
||
|
||
<style>html, body {
|
||
width: 100%;
|
||
height: 100%;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
</style>
|
||
|
||
<style>#map {
|
||
position:absolute;
|
||
top:0;
|
||
bottom:0;
|
||
right:0;
|
||
left:0;
|
||
}
|
||
</style>
|
||
|
||
<script>
|
||
L_NO_TOUCH = false;
|
||
L_DISABLE_3D = false;
|
||
</script>
|
||
|
||
|
||
</head>
|
||
<body>
|
||
|
||
|
||
<div style="position:fixed;bottom:30px;left:30px;z-index:1000;background:white;
|
||
padding:12px 16px;border-radius:8px;box-shadow:2px 2px 6px rgba(0,0,0,0.3);
|
||
font-family:sans-serif;font-size:12px;">
|
||
<b>Esquadrão Arara — OAMRP v3</b><br><br>
|
||
<b>Aeronaves:</b><br>
|
||
<span style="display:inline-block;width:16px;height:4px;background:#1f77b4;margin-right:6px;vertical-align:middle;"></span>FAB 2800<br> <span style="display:inline-block;width:16px;height:4px;background:#2ca02c;margin-right:6px;vertical-align:middle;"></span>FAB 2803<br> <span style="display:inline-block;width:16px;height:4px;background:#d62728;margin-right:6px;vertical-align:middle;"></span>FAB 2809<br> <span style="display:inline-block;width:16px;height:4px;background:#ff7f0e;margin-right:6px;vertical-align:middle;"></span>FAB 2811<br>
|
||
<br><b>Prioridade (preenchimento):</b><br>
|
||
<span style="display:inline-block;width:12px;height:12px;border-radius:50%;
|
||
background:red;margin-right:6px;"></span>Prio 1 (urgente)<br>
|
||
<span style="display:inline-block;width:12px;height:12px;border-radius:50%;
|
||
background:orange;margin-right:6px;"></span>Prio 2<br>
|
||
<span style="display:inline-block;width:12px;height:12px;border-radius:50%;
|
||
background:yellow;margin-right:6px;"></span>Prio 3<br>
|
||
<span style="display:inline-block;width:12px;height:12px;border-radius:50%;
|
||
background:lightblue;margin-right:6px;"></span>Prio 4–5<br>
|
||
<br>
|
||
<span style="border-bottom:2px dashed #aaa;display:inline-block;width:20px;
|
||
margin-right:6px;"></span>Não cumprida
|
||
</div>
|
||
|
||
|
||
<div class="folium-map" id="map_a5be9d8f4dc1d784e5f7c257e2f79d32" ></div>
|
||
|
||
</body>
|
||
<script>
|
||
|
||
|
||
var map_a5be9d8f4dc1d784e5f7c257e2f79d32 = L.map(
|
||
"map_a5be9d8f4dc1d784e5f7c257e2f79d32",
|
||
{
|
||
center: [-3.5, -62.0],
|
||
crs: L.CRS.EPSG3857,
|
||
...{
|
||
"zoom": 5,
|
||
"zoomControl": true,
|
||
"preferCanvas": false,
|
||
}
|
||
|
||
}
|
||
);
|
||
|
||
|
||
|
||
|
||
|
||
var tile_layer_68c0ed0b88e20dc8a6ac61bc067dda4a = L.tileLayer(
|
||
"https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",
|
||
{
|
||
"minZoom": 0,
|
||
"maxZoom": 20,
|
||
"maxNativeZoom": 20,
|
||
"noWrap": false,
|
||
"attribution": "\u0026copy; \u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors \u0026copy; \u003ca href=\"https://carto.com/attributions\"\u003eCARTO\u003c/a\u003e",
|
||
"subdomains": "abcd",
|
||
"detectRetina": false,
|
||
"tms": false,
|
||
"opacity": 1,
|
||
}
|
||
|
||
);
|
||
|
||
|
||
tile_layer_68c0ed0b88e20dc8a6ac61bc067dda4a.addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var feature_group_1f47a23bd7d67a07e1773038f73dd820 = L.featureGroup(
|
||
{
|
||
}
|
||
);
|
||
|
||
|
||
feature_group_1f47a23bd7d67a07e1773038f73dd820.addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var feature_group_18921e69dcb020208fc0946cb9ecb95d = L.featureGroup(
|
||
{
|
||
}
|
||
);
|
||
|
||
|
||
feature_group_18921e69dcb020208fc0946cb9ecb95d.addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var feature_group_00c1a6b6831877b5bcd49fd817f4e7f2 = L.featureGroup(
|
||
{
|
||
}
|
||
);
|
||
|
||
|
||
var poly_line_1dc853bf5376f406e6fb056f470645a5 = L.polyline(
|
||
[[-1.38, -48.48], [-3.15, -59.99]],
|
||
{"bubblingMouseEvents": true, "color": "#d62728", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "#d62728", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "noClip": false, "opacity": 0.8, "smoothFactor": 1.0, "stroke": true, "weight": 2.5}
|
||
).addTo(feature_group_00c1a6b6831877b5bcd49fd817f4e7f2);
|
||
|
||
|
||
var popup_f92837ae166afcdfe1800ee1bc6efe65 = L.popup({
|
||
"maxWidth": 250,
|
||
});
|
||
|
||
|
||
|
||
var html_76874c2dd04d8197ecbd941b42670242 = $(`<div id="html_76874c2dd04d8197ecbd941b42670242" style="width: 100.0%; height: 100.0%;"><b>FAB 2809</b> — Missão #1<br>SBBE → SBMN<br>OM: 1 | Prio: 2<br>Partida: 2025-01-02 07:53Z<br>Chegada: 2025-01-02 11:07Z<br>Duração: 3.23h</div>`)[0];
|
||
popup_f92837ae166afcdfe1800ee1bc6efe65.setContent(html_76874c2dd04d8197ecbd941b42670242);
|
||
|
||
|
||
|
||
poly_line_1dc853bf5376f406e6fb056f470645a5.bindPopup(popup_f92837ae166afcdfe1800ee1bc6efe65)
|
||
;
|
||
|
||
|
||
|
||
|
||
poly_line_1dc853bf5376f406e6fb056f470645a5.bindTooltip(
|
||
`<div>
|
||
FAB 2809 | SBBE→SBMN | OM 1 | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var circle_marker_351ecca1d49f2ccc974386f2c9eb5a13 = L.circleMarker(
|
||
[-1.38, -48.48],
|
||
{"bubblingMouseEvents": true, "color": "#d62728", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "orange", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 4, "stroke": true, "weight": 3}
|
||
).addTo(feature_group_00c1a6b6831877b5bcd49fd817f4e7f2);
|
||
|
||
|
||
circle_marker_351ecca1d49f2ccc974386f2c9eb5a13.bindTooltip(
|
||
`<div>
|
||
SBBE | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var poly_line_e00fc7e2465847f14c71aa148454cd0b = L.polyline(
|
||
[[-8.71, -63.9], [-3.15, -59.99]],
|
||
{"bubblingMouseEvents": true, "color": "#d62728", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "#d62728", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "noClip": false, "opacity": 0.8, "smoothFactor": 1.0, "stroke": true, "weight": 2.5}
|
||
).addTo(feature_group_00c1a6b6831877b5bcd49fd817f4e7f2);
|
||
|
||
|
||
var popup_bc245e7c876dab4b2d500363952e5a7c = L.popup({
|
||
"maxWidth": 250,
|
||
});
|
||
|
||
|
||
|
||
var html_ad1f8119fb7eb250fff0ef4051276bb1 = $(`<div id="html_ad1f8119fb7eb250fff0ef4051276bb1" style="width: 100.0%; height: 100.0%;"><b>FAB 2809</b> — Missão #4<br>SBPV → SBMN<br>OM: 8 | Prio: 2<br>Partida: 2025-01-09 23:11Z<br>Chegada: 2025-01-10 00:51Z<br>Duração: 1.66h</div>`)[0];
|
||
popup_bc245e7c876dab4b2d500363952e5a7c.setContent(html_ad1f8119fb7eb250fff0ef4051276bb1);
|
||
|
||
|
||
|
||
poly_line_e00fc7e2465847f14c71aa148454cd0b.bindPopup(popup_bc245e7c876dab4b2d500363952e5a7c)
|
||
;
|
||
|
||
|
||
|
||
|
||
poly_line_e00fc7e2465847f14c71aa148454cd0b.bindTooltip(
|
||
`<div>
|
||
FAB 2809 | SBPV→SBMN | OM 8 | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var circle_marker_5f5adaf2a7bac2b619d8743ef0332a58 = L.circleMarker(
|
||
[-8.71, -63.9],
|
||
{"bubblingMouseEvents": true, "color": "#d62728", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "orange", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 4, "stroke": true, "weight": 3}
|
||
).addTo(feature_group_00c1a6b6831877b5bcd49fd817f4e7f2);
|
||
|
||
|
||
circle_marker_5f5adaf2a7bac2b619d8743ef0332a58.bindTooltip(
|
||
`<div>
|
||
SBPV | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
feature_group_00c1a6b6831877b5bcd49fd817f4e7f2.addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var feature_group_ea154e472606a4022f0eb417570525df = L.featureGroup(
|
||
{
|
||
}
|
||
);
|
||
|
||
|
||
var poly_line_aef7eba1e59e4c28bae29c5197881d51 = L.polyline(
|
||
[[-1.38, -48.48], [-0.15, -67.05]],
|
||
{"bubblingMouseEvents": true, "color": "#ff7f0e", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "#ff7f0e", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "noClip": false, "opacity": 0.8, "smoothFactor": 1.0, "stroke": true, "weight": 2.5}
|
||
).addTo(feature_group_ea154e472606a4022f0eb417570525df);
|
||
|
||
|
||
var popup_ccd0debd9e41db828c485eb3c74e1101 = L.popup({
|
||
"maxWidth": 250,
|
||
});
|
||
|
||
|
||
|
||
var html_2f64f515582da362a5abbd861098a0d3 = $(`<div id="html_2f64f515582da362a5abbd861098a0d3" style="width: 100.0%; height: 100.0%;"><b>FAB 2811</b> — Missão #5<br>SBBE → SBUA<br>OM: 14 | Prio: 2<br>Partida: 2025-01-20 05:25Z<br>Chegada: 2025-01-20 10:31Z<br>Duração: 5.11h</div>`)[0];
|
||
popup_ccd0debd9e41db828c485eb3c74e1101.setContent(html_2f64f515582da362a5abbd861098a0d3);
|
||
|
||
|
||
|
||
poly_line_aef7eba1e59e4c28bae29c5197881d51.bindPopup(popup_ccd0debd9e41db828c485eb3c74e1101)
|
||
;
|
||
|
||
|
||
|
||
|
||
poly_line_aef7eba1e59e4c28bae29c5197881d51.bindTooltip(
|
||
`<div>
|
||
FAB 2811 | SBBE→SBUA | OM 14 | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var circle_marker_f49d8d5f5f54da7505d5e09d8453b3ed = L.circleMarker(
|
||
[-1.38, -48.48],
|
||
{"bubblingMouseEvents": true, "color": "#ff7f0e", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "orange", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 4, "stroke": true, "weight": 3}
|
||
).addTo(feature_group_ea154e472606a4022f0eb417570525df);
|
||
|
||
|
||
circle_marker_f49d8d5f5f54da7505d5e09d8453b3ed.bindTooltip(
|
||
`<div>
|
||
SBBE | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var poly_line_ec3645b32a68a0c27892fef6a43283be = L.polyline(
|
||
[[-1.38, -48.48], [-4.25, -69.94]],
|
||
{"bubblingMouseEvents": true, "color": "#ff7f0e", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "#ff7f0e", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "noClip": false, "opacity": 0.8, "smoothFactor": 1.0, "stroke": true, "weight": 2.5}
|
||
).addTo(feature_group_ea154e472606a4022f0eb417570525df);
|
||
|
||
|
||
var popup_712903827ae2c7493abe42c3183c7463 = L.popup({
|
||
"maxWidth": 250,
|
||
});
|
||
|
||
|
||
|
||
var html_aba89a5be4c2665a249bef1c34465c84 = $(`<div id="html_aba89a5be4c2665a249bef1c34465c84" style="width: 100.0%; height: 100.0%;"><b>FAB 2811</b> — Missão #6<br>SBBE → SBTS<br>OM: 15 | Prio: 4<br>Partida: 2025-01-21 05:22Z<br>Chegada: 2025-01-21 10:28Z<br>Duração: 5.11h</div>`)[0];
|
||
popup_712903827ae2c7493abe42c3183c7463.setContent(html_aba89a5be4c2665a249bef1c34465c84);
|
||
|
||
|
||
|
||
poly_line_ec3645b32a68a0c27892fef6a43283be.bindPopup(popup_712903827ae2c7493abe42c3183c7463)
|
||
;
|
||
|
||
|
||
|
||
|
||
poly_line_ec3645b32a68a0c27892fef6a43283be.bindTooltip(
|
||
`<div>
|
||
FAB 2811 | SBBE→SBTS | OM 15 | prio 4
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var circle_marker_6b0adedf371c6564976546fa49b2b97b = L.circleMarker(
|
||
[-1.38, -48.48],
|
||
{"bubblingMouseEvents": true, "color": "#ff7f0e", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "lightblue", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 4, "stroke": true, "weight": 3}
|
||
).addTo(feature_group_ea154e472606a4022f0eb417570525df);
|
||
|
||
|
||
circle_marker_6b0adedf371c6564976546fa49b2b97b.bindTooltip(
|
||
`<div>
|
||
SBBE | prio 4
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var poly_line_5932aa1c3db3ba56f8f05ed80f3e2376 = L.polyline(
|
||
[[-5.81, -61.28], [-8.71, -63.9]],
|
||
{"bubblingMouseEvents": true, "color": "#ff7f0e", "dashArray": null, "dashOffset": null, "fill": false, "fillColor": "#ff7f0e", "fillOpacity": 0.2, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "noClip": false, "opacity": 0.8, "smoothFactor": 1.0, "stroke": true, "weight": 2.5}
|
||
).addTo(feature_group_ea154e472606a4022f0eb417570525df);
|
||
|
||
|
||
var popup_d7051cd8d242a58f7efb05a36dd60d4a = L.popup({
|
||
"maxWidth": 250,
|
||
});
|
||
|
||
|
||
|
||
var html_847cc54c2fb43874fd0b0dfa31dac59d = $(`<div id="html_847cc54c2fb43874fd0b0dfa31dac59d" style="width: 100.0%; height: 100.0%;"><b>FAB 2811</b> — Missão #8<br>SBMY → SBPV<br>OM: 18 | Prio: 2<br>Partida: 2025-01-28 01:55Z<br>Chegada: 2025-01-28 03:00Z<br>Duração: 1.08h</div>`)[0];
|
||
popup_d7051cd8d242a58f7efb05a36dd60d4a.setContent(html_847cc54c2fb43874fd0b0dfa31dac59d);
|
||
|
||
|
||
|
||
poly_line_5932aa1c3db3ba56f8f05ed80f3e2376.bindPopup(popup_d7051cd8d242a58f7efb05a36dd60d4a)
|
||
;
|
||
|
||
|
||
|
||
|
||
poly_line_5932aa1c3db3ba56f8f05ed80f3e2376.bindTooltip(
|
||
`<div>
|
||
FAB 2811 | SBMY→SBPV | OM 18 | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
var circle_marker_2c0c0317f79ad8926b0a436bfd373454 = L.circleMarker(
|
||
[-5.81, -61.28],
|
||
{"bubblingMouseEvents": true, "color": "#ff7f0e", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "orange", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 4, "stroke": true, "weight": 3}
|
||
).addTo(feature_group_ea154e472606a4022f0eb417570525df);
|
||
|
||
|
||
circle_marker_2c0c0317f79ad8926b0a436bfd373454.bindTooltip(
|
||
`<div>
|
||
SBMY | prio 2
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
feature_group_ea154e472606a4022f0eb417570525df.addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var feature_group_61e372314c676ea5103ec26a04725e1a = L.featureGroup(
|
||
{
|
||
}
|
||
);
|
||
|
||
|
||
feature_group_61e372314c676ea5103ec26a04725e1a.addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var marker_372dcf9204e8c461d6771f2fa353025b = L.marker(
|
||
[-3.15, -59.99],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_0e50098521c1ae942b80f135a3b6c9d8 = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "red",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_5430b689ad37e4ff406a8d16e56bc303 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_8e8bd4326db37f6ec50befeaac46448a = $(`<div id="html_8e8bd4326db37f6ec50befeaac46448a" style="width: 100.0%; height: 100.0%;"><b>SBMN</b><br>Manaus / Ponta Pelada (Hub)</div>`)[0];
|
||
popup_5430b689ad37e4ff406a8d16e56bc303.setContent(html_8e8bd4326db37f6ec50befeaac46448a);
|
||
|
||
|
||
|
||
marker_372dcf9204e8c461d6771f2fa353025b.bindPopup(popup_5430b689ad37e4ff406a8d16e56bc303)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_372dcf9204e8c461d6771f2fa353025b.bindTooltip(
|
||
`<div>
|
||
<b>SBMN</b><br>Manaus / Ponta Pelada (Hub)
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_372dcf9204e8c461d6771f2fa353025b.setIcon(icon_0e50098521c1ae942b80f135a3b6c9d8);
|
||
|
||
|
||
var marker_437afb787a6376f00990bc878e71152b = L.marker(
|
||
[-1.38, -48.48],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_5fbe47bcf0541324aa42fa7f47b133e9 = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_40b180b0ac9c68def04045c71f95bd2e = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_c934314628d53756ef4ebb9cec78fc00 = $(`<div id="html_c934314628d53756ef4ebb9cec78fc00" style="width: 100.0%; height: 100.0%;"><b>SBBE</b><br>Belém</div>`)[0];
|
||
popup_40b180b0ac9c68def04045c71f95bd2e.setContent(html_c934314628d53756ef4ebb9cec78fc00);
|
||
|
||
|
||
|
||
marker_437afb787a6376f00990bc878e71152b.bindPopup(popup_40b180b0ac9c68def04045c71f95bd2e)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_437afb787a6376f00990bc878e71152b.bindTooltip(
|
||
`<div>
|
||
<b>SBBE</b><br>Belém
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_437afb787a6376f00990bc878e71152b.setIcon(icon_5fbe47bcf0541324aa42fa7f47b133e9);
|
||
|
||
|
||
var marker_bf099c4b38b7e94faddbddbadb3b701e = L.marker(
|
||
[2.84, -60.69],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_50d59502f7ca503ecc6d22ee950c289c = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_2b966be61e4adf383270d57edc448c75 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_d2cddc05b8c567ab7b75230ffc55fe5a = $(`<div id="html_d2cddc05b8c567ab7b75230ffc55fe5a" style="width: 100.0%; height: 100.0%;"><b>SBBV</b><br>Boa Vista</div>`)[0];
|
||
popup_2b966be61e4adf383270d57edc448c75.setContent(html_d2cddc05b8c567ab7b75230ffc55fe5a);
|
||
|
||
|
||
|
||
marker_bf099c4b38b7e94faddbddbadb3b701e.bindPopup(popup_2b966be61e4adf383270d57edc448c75)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_bf099c4b38b7e94faddbddbadb3b701e.bindTooltip(
|
||
`<div>
|
||
<b>SBBV</b><br>Boa Vista
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_bf099c4b38b7e94faddbddbadb3b701e.setIcon(icon_50d59502f7ca503ecc6d22ee950c289c);
|
||
|
||
|
||
var marker_924202add7610f336191ed61efbc28c2 = L.marker(
|
||
[-2.42, -54.79],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_d209ea01b42b1dc68cf1f0d5c73b4236 = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_d5849f05d734cd30d73af9a2135e91a2 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_fd9669ab27fead48249b174a103aea73 = $(`<div id="html_fd9669ab27fead48249b174a103aea73" style="width: 100.0%; height: 100.0%;"><b>SBSN</b><br>Santarém</div>`)[0];
|
||
popup_d5849f05d734cd30d73af9a2135e91a2.setContent(html_fd9669ab27fead48249b174a103aea73);
|
||
|
||
|
||
|
||
marker_924202add7610f336191ed61efbc28c2.bindPopup(popup_d5849f05d734cd30d73af9a2135e91a2)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_924202add7610f336191ed61efbc28c2.bindTooltip(
|
||
`<div>
|
||
<b>SBSN</b><br>Santarém
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_924202add7610f336191ed61efbc28c2.setIcon(icon_d209ea01b42b1dc68cf1f0d5c73b4236);
|
||
|
||
|
||
var marker_daec32e5d812889f45050974c0a30608 = L.marker(
|
||
[-8.71, -63.9],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_a457ca542a9542ca950610d2f5f683bf = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_c76a9c7b068c48ab8869bbfc18af7c03 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_383b4861dfe9e6c9f9c16bcb49cbf346 = $(`<div id="html_383b4861dfe9e6c9f9c16bcb49cbf346" style="width: 100.0%; height: 100.0%;"><b>SBPV</b><br>Porto Velho</div>`)[0];
|
||
popup_c76a9c7b068c48ab8869bbfc18af7c03.setContent(html_383b4861dfe9e6c9f9c16bcb49cbf346);
|
||
|
||
|
||
|
||
marker_daec32e5d812889f45050974c0a30608.bindPopup(popup_c76a9c7b068c48ab8869bbfc18af7c03)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_daec32e5d812889f45050974c0a30608.bindTooltip(
|
||
`<div>
|
||
<b>SBPV</b><br>Porto Velho
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_daec32e5d812889f45050974c0a30608.setIcon(icon_a457ca542a9542ca950610d2f5f683bf);
|
||
|
||
|
||
var marker_41073aa14baee923c4d4fb81d2780017 = L.marker(
|
||
[-4.25, -69.94],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_2855fd05d0b3cf15ff3e37e852d88af9 = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_a402fab5f16315a1bb86e3380cfa94d6 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_b9a622e3dc72562044e4510f0a7cdd6e = $(`<div id="html_b9a622e3dc72562044e4510f0a7cdd6e" style="width: 100.0%; height: 100.0%;"><b>SBTS</b><br>Tabatinga</div>`)[0];
|
||
popup_a402fab5f16315a1bb86e3380cfa94d6.setContent(html_b9a622e3dc72562044e4510f0a7cdd6e);
|
||
|
||
|
||
|
||
marker_41073aa14baee923c4d4fb81d2780017.bindPopup(popup_a402fab5f16315a1bb86e3380cfa94d6)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_41073aa14baee923c4d4fb81d2780017.bindTooltip(
|
||
`<div>
|
||
<b>SBTS</b><br>Tabatinga
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_41073aa14baee923c4d4fb81d2780017.setIcon(icon_2855fd05d0b3cf15ff3e37e852d88af9);
|
||
|
||
|
||
var marker_1347e197d3b900a2651be806efbadae3 = L.marker(
|
||
[-3.38, -64.72],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_d33fe2b31bd124df209efb3c8bbaaf5b = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_10d01d3f428c84a4b8534876ee24013c = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_1420c017526ff2e5992319df8a9db416 = $(`<div id="html_1420c017526ff2e5992319df8a9db416" style="width: 100.0%; height: 100.0%;"><b>SBTT</b><br>Tefé</div>`)[0];
|
||
popup_10d01d3f428c84a4b8534876ee24013c.setContent(html_1420c017526ff2e5992319df8a9db416);
|
||
|
||
|
||
|
||
marker_1347e197d3b900a2651be806efbadae3.bindPopup(popup_10d01d3f428c84a4b8534876ee24013c)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_1347e197d3b900a2651be806efbadae3.bindTooltip(
|
||
`<div>
|
||
<b>SBTT</b><br>Tefé
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_1347e197d3b900a2651be806efbadae3.setIcon(icon_d33fe2b31bd124df209efb3c8bbaaf5b);
|
||
|
||
|
||
var marker_249b918d42cf094251143c15dea51503 = L.marker(
|
||
[-0.15, -67.05],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_d4a83f126eb373fedfdc7399e31741a1 = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_056fd5a302d5bd1e1d9e8c970c01fbf3 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_ba2740a68aca39e8d8327a2926e66e1a = $(`<div id="html_ba2740a68aca39e8d8327a2926e66e1a" style="width: 100.0%; height: 100.0%;"><b>SBUA</b><br>São Gabriel da Cachoeira</div>`)[0];
|
||
popup_056fd5a302d5bd1e1d9e8c970c01fbf3.setContent(html_ba2740a68aca39e8d8327a2926e66e1a);
|
||
|
||
|
||
|
||
marker_249b918d42cf094251143c15dea51503.bindPopup(popup_056fd5a302d5bd1e1d9e8c970c01fbf3)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_249b918d42cf094251143c15dea51503.bindTooltip(
|
||
`<div>
|
||
<b>SBUA</b><br>São Gabriel da Cachoeira
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_249b918d42cf094251143c15dea51503.setIcon(icon_d4a83f126eb373fedfdc7399e31741a1);
|
||
|
||
|
||
var marker_be7422071851b896542b7420427842d7 = L.marker(
|
||
[-0.98, -62.92],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_8c4078498d2fef127200892c2dcea5fa = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_00141407372091bd124284b4dd7e6288 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_48b3a06ff1b071790b71baf99dd04b07 = $(`<div id="html_48b3a06ff1b071790b71baf99dd04b07" style="width: 100.0%; height: 100.0%;"><b>SWBC</b><br>Barcelos</div>`)[0];
|
||
popup_00141407372091bd124284b4dd7e6288.setContent(html_48b3a06ff1b071790b71baf99dd04b07);
|
||
|
||
|
||
|
||
marker_be7422071851b896542b7420427842d7.bindPopup(popup_00141407372091bd124284b4dd7e6288)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_be7422071851b896542b7420427842d7.bindTooltip(
|
||
`<div>
|
||
<b>SWBC</b><br>Barcelos
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_be7422071851b896542b7420427842d7.setIcon(icon_8c4078498d2fef127200892c2dcea5fa);
|
||
|
||
|
||
var marker_275da097855075adc560b4d28c9b9d61 = L.marker(
|
||
[-5.81, -61.28],
|
||
{
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
var icon_42bf80d915a37bf178b59169c323c665 = L.AwesomeMarkers.icon(
|
||
{
|
||
"markerColor": "blue",
|
||
"iconColor": "white",
|
||
"icon": "plane",
|
||
"prefix": "fa",
|
||
"extraClasses": "fa-rotate-0",
|
||
}
|
||
);
|
||
|
||
|
||
var popup_e3d7359a44ddf69b4a3e9cd649414940 = L.popup({
|
||
"maxWidth": 200,
|
||
});
|
||
|
||
|
||
|
||
var html_cf41c8ffd9861adaa8fac74b21425981 = $(`<div id="html_cf41c8ffd9861adaa8fac74b21425981" style="width: 100.0%; height: 100.0%;"><b>SBMY</b><br>Manicoré</div>`)[0];
|
||
popup_e3d7359a44ddf69b4a3e9cd649414940.setContent(html_cf41c8ffd9861adaa8fac74b21425981);
|
||
|
||
|
||
|
||
marker_275da097855075adc560b4d28c9b9d61.bindPopup(popup_e3d7359a44ddf69b4a3e9cd649414940)
|
||
;
|
||
|
||
|
||
|
||
|
||
marker_275da097855075adc560b4d28c9b9d61.bindTooltip(
|
||
`<div>
|
||
<b>SBMY</b><br>Manicoré
|
||
</div>`,
|
||
{
|
||
"sticky": true,
|
||
}
|
||
);
|
||
|
||
|
||
marker_275da097855075adc560b4d28c9b9d61.setIcon(icon_42bf80d915a37bf178b59169c323c665);
|
||
|
||
|
||
var layer_control_9d96c679cfa55e618eca79bb06df0431_layers = {
|
||
base_layers : {
|
||
"cartodbpositron" : tile_layer_68c0ed0b88e20dc8a6ac61bc067dda4a,
|
||
},
|
||
overlays : {
|
||
"FAB 2800" : feature_group_1f47a23bd7d67a07e1773038f73dd820,
|
||
"FAB 2803" : feature_group_18921e69dcb020208fc0946cb9ecb95d,
|
||
"FAB 2809" : feature_group_00c1a6b6831877b5bcd49fd817f4e7f2,
|
||
"FAB 2811" : feature_group_ea154e472606a4022f0eb417570525df,
|
||
"N\u00e3o cumpridas" : feature_group_61e372314c676ea5103ec26a04725e1a,
|
||
},
|
||
};
|
||
let layer_control_9d96c679cfa55e618eca79bb06df0431 = L.control.layers(
|
||
layer_control_9d96c679cfa55e618eca79bb06df0431_layers.base_layers,
|
||
layer_control_9d96c679cfa55e618eca79bb06df0431_layers.overlays,
|
||
{
|
||
"position": "topright",
|
||
"collapsed": false,
|
||
"autoZIndex": true,
|
||
}
|
||
).addTo(map_a5be9d8f4dc1d784e5f7c257e2f79d32);
|
||
|
||
|
||
</script>
|
||
</html>"></iframe>
|
||
</div>
|
||
<div class="section">
|
||
<div class="section-title">Planejamento de Voos</div>
|
||
<div class="section-body">
|
||
<style>
|
||
.filtros {
|
||
display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; align-items: flex-end;
|
||
}
|
||
.filtros label { font-size: 0.78rem; color: #555; display: flex; flex-direction: column; gap: 3px; }
|
||
.filtros select, .filtros input {
|
||
border: 1px solid #ccc; border-radius: 4px; padding: 5px 8px;
|
||
font-size: 0.85rem; min-width: 130px; background: white;
|
||
}
|
||
.filtros button {
|
||
padding: 6px 14px; border: none; border-radius: 4px; cursor: pointer;
|
||
font-size: 0.85rem; background: #1a3a5c; color: white;
|
||
align-self: flex-end;
|
||
}
|
||
.filtros button:hover { background: #254f80; }
|
||
#contador { font-size: 0.82rem; color: #666; margin-bottom: 10px; }
|
||
#tabela-voos { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
|
||
#tabela-voos thead th {
|
||
background: #1a3a5c; color: white; padding: 8px 10px;
|
||
text-align: left; white-space: nowrap; cursor: pointer; user-select: none;
|
||
}
|
||
#tabela-voos thead th:hover { background: #254f80; }
|
||
#tabela-voos thead th .sort-icon { margin-left: 4px; opacity: 0.5; }
|
||
#tabela-voos tbody tr:nth-child(even) { background: #f7f8fa; }
|
||
#tabela-voos tbody tr:hover { background: #e8f0fb; }
|
||
#tabela-voos td { padding: 7px 10px; border-bottom: 1px solid #eee; white-space: nowrap; }
|
||
.badge {
|
||
display: inline-block; padding: 2px 8px; border-radius: 10px;
|
||
font-size: 0.75rem; font-weight: 600; text-transform: uppercase;
|
||
}
|
||
.badge-cumprida { background: #d4edda; color: #155724; }
|
||
.badge-nao_cumprida { background: #f8d7da; color: #721c24; }
|
||
.badge-inspecao { background: #e2d9f3; color: #4a235a; }
|
||
.prio-1 { color: #d62728; font-weight: 700; }
|
||
.prio-2 { color: #ff7f0e; font-weight: 700; }
|
||
.prio-3 { color: #2ca02c; font-weight: 700; }
|
||
</style>
|
||
|
||
<div class="filtros">
|
||
<label>Aeronave
|
||
<select id="f-aeronave"><option value="">— Todas —</option><option value="FAB 2800">FAB 2800</option><option value="FAB 2803">FAB 2803</option><option value="FAB 2809">FAB 2809</option><option value="FAB 2811">FAB 2811</option></select>
|
||
</label>
|
||
<label>Status
|
||
<select id="f-status"><option value="">— Todos —</option><option value="cumprida">cumprida</option><option value="nao_cumprida">nao_cumprida</option><option value="inspecao">inspecao</option></select>
|
||
</label>
|
||
<label>Prioridade
|
||
<select id="f-prio"><option value="">— Todas —</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option></select>
|
||
</label>
|
||
<label>Base (orig/dest)
|
||
<select id="f-base"><option value="">— Todas —</option><option value="SBAN">SBAN</option><option value="SBBE">SBBE</option><option value="SBCC">SBCC</option><option value="SBCO">SBCO</option><option value="SBCY">SBCY</option><option value="SBMN">SBMN</option><option value="SBMY">SBMY</option><option value="SBOI">SBOI</option><option value="SBPV">SBPV</option><option value="SBSN">SBSN</option><option value="SBTF">SBTF</option><option value="SBTS">SBTS</option><option value="SBTT">SBTT</option><option value="SBUA">SBUA</option><option value="SBUY">SBUY</option><option value="SBVH">SBVH</option><option value="SBYS">SBYS</option><option value="SWBC">SWBC</option><option value="SWCA">SWCA</option></select>
|
||
</label>
|
||
<label>Busca (OM, rota…)
|
||
<input id="f-texto" type="text" placeholder="ex: SBMN, EVAM…">
|
||
</label>
|
||
<button onclick="limparFiltros()">Limpar</button>
|
||
</div>
|
||
<div id="contador"></div>
|
||
<table id="tabela-voos">
|
||
<thead>
|
||
<tr>
|
||
<th onclick="ordenar(0)">Aeronave <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(1)">Status <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(2)">#Missão <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(3)">OM <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(4)">Origem <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(5)">Destino <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(6)">Partida (UTC) <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(7)">Chegada (UTC) <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(8)">Duração (h) <span class="sort-icon">↕</span></th>
|
||
<th onclick="ordenar(9)">Prio <span class="sort-icon">↕</span></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="corpo-tabela"></tbody>
|
||
</table>
|
||
|
||
<script>
|
||
const DADOS = [{"status": "cumprida", "aeronave": "FAB 2800", "ordem": "1", "om": "7", "orig": "SBMN", "dest": "SBCO", "partida": "2025-01-09 02:09Z", "chegada": "2025-01-09 07:58Z", "dur_h": "5.82", "prioridade": "1"}, {"status": "cumprida", "aeronave": "FAB 2800", "ordem": "2", "om": "10", "orig": "SBCY", "dest": "SBMN", "partida": "2025-01-11 23:29Z", "chegada": "2025-01-12 03:09Z", "dur_h": "3.67", "prioridade": "3"}, {"status": "cumprida", "aeronave": "FAB 2800", "ordem": "3", "om": "12", "orig": "SWCA", "dest": "SBTT", "partida": "2025-01-12 14:52Z", "chegada": "2025-01-12 16:14Z", "dur_h": "1.38", "prioridade": "3"}, {"status": "cumprida", "aeronave": "FAB 2800", "ordem": "4", "om": "19", "orig": "SBMN", "dest": "SWCA", "partida": "2025-01-29 04:57Z", "chegada": "2025-01-29 06:36Z", "dur_h": "1.65", "prioridade": "1"}, {"status": "cumprida", "aeronave": "FAB 2800", "ordem": "5", "om": "20", "orig": "SWCA", "dest": "SBCO", "partida": "2025-01-31 03:09Z", "chegada": "2025-01-31 08:39Z", "dur_h": "5.51", "prioridade": "2"}, {"status": "inspecao", "aeronave": "FAB 2800", "ordem": "", "om": "INSP 2A", "orig": "SBMN", "dest": "SBMN", "partida": "2025-01-12 16:14Z", "chegada": "2025-01-16 16:14Z", "dur_h": "96.00", "prioridade": ""}, {"status": "cumprida", "aeronave": "FAB 2803", "ordem": "1", "om": "6", "orig": "SWBC", "dest": "SBAN", "partida": "2025-01-06 21:08Z", "chegada": "2025-01-07 00:56Z", "dur_h": "3.80", "prioridade": "2"}, {"status": "cumprida", "aeronave": "FAB 2809", "ordem": "1", "om": "1", "orig": "SBBE", "dest": "SBMN", "partida": "2025-01-02 07:53Z", "chegada": "2025-01-02 11:07Z", "dur_h": "3.23", "prioridade": "2"}, {"status": "cumprida", "aeronave": "FAB 2809", "ordem": "2", "om": "2", "orig": "SBPV", "dest": "SBOI", "partida": "2025-01-03 03:03Z", "chegada": "2025-01-03 09:37Z", "dur_h": "6.58", "prioridade": "3"}, {"status": "cumprida", "aeronave": "FAB 2809", "ordem": "3", "om": "5", "orig": "SBMY", "dest": "SBYS", "partida": "2025-01-04 19:37Z", "chegada": "2025-01-05 01:06Z", "dur_h": "5.49", "prioridade": "1"}, {"status": "cumprida", "aeronave": "FAB 2809", "ordem": "4", "om": "8", "orig": "SBPV", "dest": "SBMN", "partida": "2025-01-09 23:11Z", "chegada": "2025-01-10 00:51Z", "dur_h": "1.66", "prioridade": "2"}, {"status": "cumprida", "aeronave": "FAB 2809", "ordem": "5", "om": "11", "orig": "SBSN", "dest": "SBVH", "partida": "2025-01-12 01:26Z", "chegada": "2025-01-12 04:15Z", "dur_h": "2.82", "prioridade": "1"}, {"status": "cumprida", "aeronave": "FAB 2809", "ordem": "6", "om": "16", "orig": "SBTF", "dest": "SBMN", "partida": "2025-01-24 15:25Z", "chegada": "2025-01-24 16:40Z", "dur_h": "1.24", "prioridade": "3"}, {"status": "inspecao", "aeronave": "FAB 2809", "ordem": "", "om": "INSP 2A", "orig": "SBMN", "dest": "SBMN", "partida": "2025-01-05 01:06Z", "chegada": "2025-01-09 01:06Z", "dur_h": "96.00", "prioridade": ""}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "1", "om": "3", "orig": "SBMN", "dest": "SBUY", "partida": "2025-01-03 09:50Z", "chegada": "2025-01-03 16:17Z", "dur_h": "6.46", "prioridade": "2"}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "2", "om": "4", "orig": "SWCA", "dest": "SBMN", "partida": "2025-01-04 03:01Z", "chegada": "2025-01-04 04:51Z", "dur_h": "1.84", "prioridade": "3"}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "3", "om": "9", "orig": "SBUY", "dest": "SBCC", "partida": "2025-01-11 12:27Z", "chegada": "2025-01-11 17:17Z", "dur_h": "4.82", "prioridade": "1"}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "4", "om": "13", "orig": "SBUY", "dest": "SBMN", "partida": "2025-01-15 01:13Z", "chegada": "2025-01-15 07:31Z", "dur_h": "6.31", "prioridade": "3"}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "5", "om": "14", "orig": "SBBE", "dest": "SBUA", "partida": "2025-01-20 05:25Z", "chegada": "2025-01-20 10:31Z", "dur_h": "5.11", "prioridade": "2"}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "6", "om": "15", "orig": "SBBE", "dest": "SBTS", "partida": "2025-01-21 05:22Z", "chegada": "2025-01-21 10:28Z", "dur_h": "5.11", "prioridade": "4"}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "7", "om": "17", "orig": "SWBC", "dest": "SBCC", "partida": "2025-01-27 03:48Z", "chegada": "2025-01-27 07:24Z", "dur_h": "3.61", "prioridade": "2"}, {"status": "cumprida", "aeronave": "FAB 2811", "ordem": "8", "om": "18", "orig": "SBMY", "dest": "SBPV", "partida": "2025-01-28 01:55Z", "chegada": "2025-01-28 03:00Z", "dur_h": "1.08", "prioridade": "2"}];
|
||
let _colOrdem = -1, _colAsc = true;
|
||
|
||
function badgeStatus(s) {
|
||
const label = {cumprida:'Cumprida', nao_cumprida:'Não cumprida', inspecao:'Inspeção'}[s] || s;
|
||
return `<span class="badge badge-${s}">${label}</span>`;
|
||
}
|
||
function prio(p) {
|
||
if (!p) return '';
|
||
const cls = ['1','2','3'].includes(p) ? `prio-${p}` : '';
|
||
return `<span class="${cls}">${p}</span>`;
|
||
}
|
||
|
||
function linhasFiltradas() {
|
||
const fa = document.getElementById('f-aeronave').value;
|
||
const fs = document.getElementById('f-status').value;
|
||
const fp = document.getElementById('f-prio').value;
|
||
const fb = document.getElementById('f-base').value;
|
||
const ft = document.getElementById('f-texto').value.toLowerCase();
|
||
return DADOS.filter(r => {
|
||
if (fa && r.aeronave !== fa) return false;
|
||
if (fs && r.status !== fs) return false;
|
||
if (fp && r.prioridade !== fp) return false;
|
||
if (fb && r.orig !== fb && r.dest !== fb) return false;
|
||
if (ft && !JSON.stringify(r).toLowerCase().includes(ft)) return false;
|
||
return true;
|
||
});
|
||
}
|
||
|
||
function renderizar() {
|
||
let rows = linhasFiltradas();
|
||
if (_colOrdem >= 0) {
|
||
const chaves = ['aeronave','status','ordem','om','orig','dest','partida','chegada','dur_h','prioridade'];
|
||
const c = chaves[_colOrdem];
|
||
rows = [...rows].sort((a,b) => {
|
||
const va = a[c] ?? '', vb = b[c] ?? '';
|
||
return _colAsc ? String(va).localeCompare(String(vb), 'pt', {numeric:true})
|
||
: String(vb).localeCompare(String(va), 'pt', {numeric:true});
|
||
});
|
||
}
|
||
document.getElementById('contador').textContent =
|
||
`${rows.length} registro${rows.length !== 1 ? 's' : ''} exibido${rows.length !== 1 ? 's' : ''} de ${DADOS.length}`;
|
||
document.getElementById('corpo-tabela').innerHTML = rows.map(r => `
|
||
<tr>
|
||
<td>${r.aeronave}</td>
|
||
<td>${badgeStatus(r.status)}</td>
|
||
<td>${r.ordem}</td>
|
||
<td>${r.om}</td>
|
||
<td>${r.orig}</td>
|
||
<td>${r.dest}</td>
|
||
<td>${r.partida}</td>
|
||
<td>${r.chegada}</td>
|
||
<td>${r.dur_h}</td>
|
||
<td>${prio(r.prioridade)}</td>
|
||
</tr>`).join('');
|
||
}
|
||
|
||
function ordenar(col) {
|
||
if (_colOrdem === col) _colAsc = !_colAsc;
|
||
else { _colOrdem = col; _colAsc = true; }
|
||
renderizar();
|
||
}
|
||
|
||
function limparFiltros() {
|
||
['f-aeronave','f-status','f-prio','f-base'].forEach(id => document.getElementById(id).value = '');
|
||
document.getElementById('f-texto').value = '';
|
||
renderizar();
|
||
}
|
||
|
||
['f-aeronave','f-status','f-prio','f-base'].forEach(id =>
|
||
document.getElementById(id).addEventListener('change', renderizar));
|
||
document.getElementById('f-texto').addEventListener('input', renderizar);
|
||
|
||
renderizar();
|
||
</script></div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html> |