{"id":3095,"date":"2026-08-08T12:06:20","date_gmt":"2026-08-08T15:06:20","guid":{"rendered":"https:\/\/powderblue-hippopotamus-815759.hostingersite.com\/?page_id=3095"},"modified":"2026-08-08T12:06:28","modified_gmt":"2026-08-08T15:06:28","slug":"mapa-interativo-projetos","status":"publish","type":"page","link":"https:\/\/petrofoz.com.br\/index.php\/mapa-interativo-projetos\/","title":{"rendered":"Mapa Interativo Projetos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3095\" class=\"elementor elementor-3095\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e766fd5 e-con e-atomic-element e-flexbox-base e-ab32dbf \" data-id=\"e766fd5\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"e766fd5\">\n    \t\t<div class=\"elementor-element elementor-element-dcf760a elementor-widget elementor-widget-shortcode\" data-id=\"dcf760a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"mapa-projetos-amapa\"><\/div>\r\n    <script>\r\n    (function () {\r\n      'use strict';\r\n\r\n      const CONTAINER_ID = 'mapa-projetos-amapa';\r\n      const PREFIX = 'mapa-petrofoz-';\r\n      const CDN = {\r\n        leafletCss: 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css',\r\n        leafletJs: 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js',\r\n        clusterCss: 'https:\/\/unpkg.com\/leaflet.markercluster@1.5.3\/dist\/MarkerCluster.css',\r\n        clusterDefaultCss: 'https:\/\/unpkg.com\/leaflet.markercluster@1.5.3\/dist\/MarkerCluster.Default.css',\r\n        clusterJs: 'https:\/\/unpkg.com\/leaflet.markercluster@1.5.3\/dist\/leaflet.markercluster.js'\r\n      };\r\n\r\n      const projetos = [\r\n        { codigo:'P01', pesquisador:'Charles Achcar Chelala', projeto:'A Economia do Agroneg\u00f3cio do Estado do Amap\u00e1', local:'Estado do Amap\u00e1', municipio:'Macap\u00e1', tema:'Petr\u00f3leo, economia e desenvolvimento regional', abrangencia:'Estadual', situacao:'Em andamento', longitude:-51.0664, latitude:0.0356, precisao:'Referencial', link:'' },\r\n        { codigo:'P02', pesquisador:'Claudia M. S. C. F. Chelala', projeto:'Aplicabilidade de res\u00edduos de esp\u00e9cies nativas na clarifica\u00e7\u00e3o de \u00e1gua superficial', local:'Estado do Amap\u00e1', municipio:'Macap\u00e1', tema:'Tecnologias ambientais, saneamento e biotecnologia', abrangencia:'Estadual', situacao:'Em andamento', longitude:-51.0464, latitude:0.0556, precisao:'Referencial', link:'' },\r\n        { codigo:'P03', pesquisador:'Ant\u00f4nio Cl\u00e1udio Almeida de Carvalho', projeto:'Implanta\u00e7\u00e3o e an\u00e1lise de URTs de mandioca e fruticultura', local:'Vale do Rio Araguari', municipio:'Porto Grande', tema:'Agricultura, produ\u00e7\u00e3o rural e seguran\u00e7a alimentar', abrangencia:'Regional', situacao:'Conclu\u00eddo', longitude:-51.412, latitude:0.7136, precisao:'Municipal', link:'' },\r\n        { codigo:'P04', pesquisador:'Jos\u00e9 Leonardo Lima Magalh\u00e3es', projeto:'Regenerando: recupera\u00e7\u00e3o das \u00e1reas degradadas do Amap\u00e1', local:'Estado do Amap\u00e1', municipio:'Macap\u00e1', tema:'Biodiversidade, florestas e conserva\u00e7\u00e3o', abrangencia:'Estadual', situacao:'Em andamento', longitude:-51.0864, latitude:0.0556, precisao:'Referencial', link:'' },\r\n        { codigo:'P05', pesquisador:'Julieta Bramorski', projeto:'Comportamento hidrol\u00f3gico de esp\u00e9cies arb\u00f3reas', local:'Campus Marco Zero da UNIFAP', municipio:'Macap\u00e1', tema:'Ambientes costeiros, recursos h\u00eddricos e mudan\u00e7as clim\u00e1ticas', abrangencia:'Pontual', situacao:'Em andamento', longitude:-51.0785, latitude:0.0075, precisao:'Aproximada', link:'' },\r\n        { codigo:'P06', pesquisador:'Karina Cardoso Valverde', projeto:'Impactos e perspectivas socioecon\u00f4micas sobre a explora\u00e7\u00e3o de petr\u00f3leo', local:'Bacia da Foz do Amazonas', municipio:'\u00c1rea mar\u00edtima', tema:'Petr\u00f3leo, economia e desenvolvimento regional', abrangencia:'Costeira\/marinha', situacao:'Conclu\u00eddo', longitude:-49.85, latitude:2.8, precisao:'Referencial', link:'' },\r\n        { codigo:'P07', pesquisador:'Orleno Marques da Silva Junior', projeto:'Monitoramento Ambiental Integrado da Reserva Biol\u00f3gica do Parazinho', local:'Reserva Biol\u00f3gica do Parazinho', municipio:'Amap\u00e1', tema:'Biodiversidade, florestas e conserva\u00e7\u00e3o', abrangencia:'Unidade de conserva\u00e7\u00e3o', situacao:'Em andamento', longitude:-50.5, latitude:1.85, precisao:'Aproximada', link:'' },\r\n        { codigo:'P08', pesquisador:'Rodrigo Augusto Valverde', projeto:'Impactos e perspectivas socioecon\u00f4micas sobre a explora\u00e7\u00e3o de petr\u00f3leo', local:'Bacia da Foz do Amazonas', municipio:'\u00c1rea mar\u00edtima', tema:'Petr\u00f3leo, economia e desenvolvimento regional', abrangencia:'Costeira\/marinha', situacao:'Conclu\u00eddo', longitude:-49.75, latitude:2.7, precisao:'Referencial', link:'' },\r\n        { codigo:'P09', pesquisador:'Edenilson Dutra de Moura', projeto:'Caracteriza\u00e7\u00e3o socioambiental no rio Pantanari', local:'Rio Pantanari', municipio:'Oiapoque', tema:'Territ\u00f3rio, cartografia e comunidades tradicionais', abrangencia:'Local', situacao:'Em andamento', longitude:-51.95, latitude:3.7, precisao:'Aproximada', link:'' },\r\n        { codigo:'P10', pesquisador:'Eduardo Margarit Alfena do Carmo', projeto:'PROTERRA-VBM', local:'Macap\u00e1, Santana e Oiapoque', municipio:'Macap\u00e1', tema:'Agricultura, produ\u00e7\u00e3o rural e seguran\u00e7a alimentar', abrangencia:'Regional', situacao:'Em andamento', longitude:-51.0464, latitude:0.0156, precisao:'Municipal', link:'' },\r\n        { codigo:'P11', pesquisador:'Emerson Monteiro dos Santos', projeto:'Biodiversidade nas unidades de conserva\u00e7\u00e3o e entorno', local:'Unidades de conserva\u00e7\u00e3o de Oiapoque', municipio:'Oiapoque', tema:'Biodiversidade, florestas e conserva\u00e7\u00e3o', abrangencia:'Municipal\/regional', situacao:'Em andamento', longitude:-51.8341, latitude:3.843, precisao:'Municipal', link:'' },\r\n        { codigo:'P12', pesquisador:'Emmanuele de Almeida Pedreira', projeto:'Projeto ATER Mulher', local:'Estado do Amap\u00e1', municipio:'Macap\u00e1', tema:'Educa\u00e7\u00e3o, sa\u00fade e quest\u00f5es sociais', abrangencia:'Estadual', situacao:'Conclu\u00eddo', longitude:-51.1064, latitude:0.0556, precisao:'Referencial', link:'' },\r\n        { codigo:'P13', pesquisador:'Francisco Ot\u00e1vio Landim Neto', projeto:'Cartografia Social na Terra Ind\u00edgena Ua\u00e7\u00e1', local:'Terra Ind\u00edgena Ua\u00e7\u00e1 - Aldeia Manga', municipio:'Oiapoque', tema:'Territ\u00f3rio, cartografia e comunidades tradicionais', abrangencia:'Terra ind\u00edgena', situacao:'Em andamento', longitude:-51.78, latitude:3.56, precisao:'Aproximada', link:'' },\r\n        { codigo:'P14', pesquisador:'Geison Carlos Xisto da Silva', projeto:'Cen\u00e1rios hidrodin\u00e2micos e ambientais no Estu\u00e1rio Amaz\u00f4nico', local:'Estu\u00e1rio Amaz\u00f4nico e costa do Amap\u00e1', municipio:'Macap\u00e1', tema:'Ambientes costeiros, recursos h\u00eddricos e mudan\u00e7as clim\u00e1ticas', abrangencia:'Costeira\/marinha', situacao:'Em andamento', longitude:-50.8, latitude:0.3, precisao:'Referencial', link:'' },\r\n        { codigo:'P15', pesquisador:'J\u00f3 de Farias Lima', projeto:'Enfrentamento das pragas da mandiocultura', local:'Comunidades ind\u00edgenas de Oiapoque', municipio:'Oiapoque', tema:'Agricultura, produ\u00e7\u00e3o rural e seguran\u00e7a alimentar', abrangencia:'Terra ind\u00edgena', situacao:'Conclu\u00eddo', longitude:-51.81, latitude:3.6, precisao:'Aproximada', link:'' },\r\n        { codigo:'P16', pesquisador:'Jos\u00e9 Mauro Palhares', projeto:'Impactos socioecon\u00f4micos da explora\u00e7\u00e3o de petr\u00f3leo', local:'Bacia da Foz do Amazonas', municipio:'Macap\u00e1', tema:'Petr\u00f3leo, economia e desenvolvimento regional', abrangencia:'Costeira\/marinha', situacao:'Em andamento', longitude:-50, latitude:1.5, precisao:'Referencial', link:'' },\r\n        { codigo:'P17', pesquisador:'Josimar Santos de Aviz', projeto:'Zoneamento Ecol\u00f3gico-Econ\u00f4mico do Estado do Amap\u00e1', local:'Estado do Amap\u00e1', municipio:'Macap\u00e1', tema:'Territ\u00f3rio, cartografia e comunidades tradicionais', abrangencia:'Estadual', situacao:'Conclu\u00eddo', longitude:-51.1264, latitude:0.0556, precisao:'Referencial', link:'' },\r\n        { codigo:'P18', pesquisador:'Luciana Sampaio Lima', projeto:'Prospec\u00e7\u00e3o biotecnol\u00f3gica de bioativos', local:'Estado do Amap\u00e1', municipio:'Macap\u00e1', tema:'Tecnologias ambientais, saneamento e biotecnologia', abrangencia:'Estadual', situacao:'Em andamento', longitude:-51.0664, latitude:-0.0044, precisao:'Referencial', link:'' },\r\n        { codigo:'P19', pesquisador:'Luciano Ara\u00fajo Pereira', projeto:'Diversidade de Philodendron', local:'Floresta Estadual do Amap\u00e1', municipio:'Porto Grande', tema:'Biodiversidade, florestas e conserva\u00e7\u00e3o', abrangencia:'Unidade de conserva\u00e7\u00e3o', situacao:'Em andamento', longitude:-52, latitude:1.5, precisao:'Referencial', link:'' },\r\n        { codigo:'P20', pesquisador:'Marcela Nunes Videira', projeto:'N\u00facleo Tecnol\u00f3gico de Agronomia', local:'Territ\u00f3rio dos Lagos', municipio:'Amap\u00e1', tema:'Agricultura, produ\u00e7\u00e3o rural e seguran\u00e7a alimentar', abrangencia:'Regional', situacao:'Em andamento', longitude:-50.7957, latitude:2.0527, precisao:'Municipal', link:'' },\r\n        { codigo:'P21', pesquisador:'Marcelo de Jesus Carim', projeto:'Biodiversidade em \u00e1rea de manejo florestal', local:'Floresta Estadual do Amap\u00e1', municipio:'Porto Grande', tema:'Biodiversidade, florestas e conserva\u00e7\u00e3o', abrangencia:'Unidade de conserva\u00e7\u00e3o', situacao:'Em andamento', longitude:-52.05, latitude:1.45, precisao:'Referencial', link:'' },\r\n        { codigo:'P22', pesquisador:'M\u00e1rcio Wendel de Lima Neri', projeto:'Sistema de Observa\u00e7\u00e3o da Foz do Amazonas', local:'Foz do Amazonas e litoral do Amap\u00e1', municipio:'Macap\u00e1', tema:'Ambientes costeiros, recursos h\u00eddricos e mudan\u00e7as clim\u00e1ticas', abrangencia:'Costeira\/marinha', situacao:'Em andamento', longitude:-50.35, latitude:1, precisao:'Referencial', link:'' },\r\n        { codigo:'P23', pesquisador:'Paulo Gibson Farias Bezerra', projeto:'Planos Municipais de Saneamento B\u00e1sico', local:'Oiapoque, Cal\u00e7oene, Tartarugalzinho, Ferreira Gomes e Pedra Branca', municipio:'Cal\u00e7oene', tema:'Tecnologias ambientais, saneamento e biotecnologia', abrangencia:'Regional', situacao:'Em andamento', longitude:-50.9482, latitude:2.4968, precisao:'Municipal', link:'' },\r\n        { codigo:'P24', pesquisador:'Pedro Henrique Fauro de Ara\u00fajo', projeto:'An\u00e1lise biogeoqu\u00edmica do ecossistema aqu\u00e1tico', local:'Estu\u00e1rio do Baixo Rio Amazonas', municipio:'Macap\u00e1', tema:'Ambientes costeiros, recursos h\u00eddricos e mudan\u00e7as clim\u00e1ticas', abrangencia:'Costeira\/marinha', situacao:'Conclu\u00eddo', longitude:-50.75, latitude:0.1, precisao:'Referencial', link:'' },\r\n        { codigo:'P25', pesquisador:'Raimunda Kelly Silva Gomes', projeto:'Educa\u00e7\u00e3o do campo, das \u00e1guas e da floresta', local:'Escolas Fam\u00edlias Agr\u00edcolas do Amap\u00e1', municipio:'Macap\u00e1', tema:'Educa\u00e7\u00e3o, sa\u00fade e quest\u00f5es sociais', abrangencia:'Estadual', situacao:'Em andamento', longitude:-51.0864, latitude:-0.0044, precisao:'Referencial', link:'' },\r\n        { codigo:'P26', pesquisador:'Regina Celis Martins Ferreira', projeto:'I Virada Acad\u00eamica de Ci\u00eancias Ambientais', local:'UNIFAP - Macap\u00e1', municipio:'Macap\u00e1', tema:'Educa\u00e7\u00e3o, sa\u00fade e quest\u00f5es sociais', abrangencia:'Pontual', situacao:'Conclu\u00eddo', longitude:-51.078, latitude:0.008, precisao:'Aproximada', link:'' },\r\n        { codigo:'P27', pesquisador:'Wescley Mendes Pedrosa', projeto:'Fertirriga\u00e7\u00e3o mineral e org\u00e2nica', local:'Estado do Amap\u00e1', municipio:'Macap\u00e1', tema:'Agricultura, produ\u00e7\u00e3o rural e seguran\u00e7a alimentar', abrangencia:'Estadual', situacao:'N\u00e3o informada', longitude:-51.1264, latitude:-0.0044, precisao:'Referencial', link:'' }\r\n      ];\r\n\r\n      const coresTema = {\r\n        'Petr\u00f3leo, economia e desenvolvimento regional': '#f28e2b',\r\n        'Tecnologias ambientais, saneamento e biotecnologia': '#1f9ac6',\r\n        'Agricultura, produ\u00e7\u00e3o rural e seguran\u00e7a alimentar': '#d4b72c',\r\n        'Biodiversidade, florestas e conserva\u00e7\u00e3o': '#2f9e55',\r\n        'Ambientes costeiros, recursos h\u00eddricos e mudan\u00e7as clim\u00e1ticas': '#2678b8',\r\n        'Territ\u00f3rio, cartografia e comunidades tradicionais': '#7651a8',\r\n        'Educa\u00e7\u00e3o, sa\u00fade e quest\u00f5es sociais': '#d95f8d'\r\n      };\r\n\r\n      function carregarCss(url, id) {\r\n        if (document.getElementById(id)) return;\r\n        const link = document.createElement('link');\r\n        link.id = id;\r\n        link.rel = 'stylesheet';\r\n        link.href = url;\r\n        document.head.appendChild(link);\r\n      }\r\n\r\n      function carregarScript(url, id) {\r\n        return new Promise((resolve, reject) => {\r\n          const existente = document.getElementById(id);\r\n          if (existente) {\r\n            if (existente.dataset.carregado === 'true') resolve();\r\n            else {\r\n              existente.addEventListener('load', resolve, { once: true });\r\n              existente.addEventListener('error', reject, { once: true });\r\n            }\r\n            return;\r\n          }\r\n          const script = document.createElement('script');\r\n          script.id = id;\r\n          script.src = url;\r\n          script.async = true;\r\n          script.onload = () => { script.dataset.carregado = 'true'; resolve(); };\r\n          script.onerror = () => reject(new Error('N\u00e3o foi poss\u00edvel carregar ' + url));\r\n          document.head.appendChild(script);\r\n        });\r\n      }\r\n\r\n      async function garantirDependencias() {\r\n        carregarCss(CDN.leafletCss, PREFIX + 'leaflet-css');\r\n        carregarCss(CDN.clusterCss, PREFIX + 'cluster-css');\r\n        carregarCss(CDN.clusterDefaultCss, PREFIX + 'cluster-default-css');\r\n        if (!window.L) await carregarScript(CDN.leafletJs, PREFIX + 'leaflet-js');\r\n        if (!window.L.markerClusterGroup) await carregarScript(CDN.clusterJs, PREFIX + 'cluster-js');\r\n      }\r\n\r\n      function escapar(valor) {\r\n        return String(valor == null ? '' : valor).replace(\/[&<>'\"]\/g, caractere => ({\r\n          '&': '&amp;', '<': '&lt;', '>': '&gt;', \"'\": '&#39;', '\"': '&quot;'\r\n        })[caractere]);\r\n      }\r\n\r\n      function normalizar(valor) {\r\n        return String(valor || '').normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '').toLowerCase().trim();\r\n      }\r\n\r\n      function coordenadaValida(projeto) {\r\n        const lat = Number(projeto.latitude);\r\n        const lng = Number(projeto.longitude);\r\n        return Number.isFinite(lat) && Number.isFinite(lng) && lat >= -90 && lat <= 90 &&\r\n          lng >= -180 && lng <= 180 && !(lat === 0 && lng === 0);\r\n      }\r\n\r\n      function injetarEstilos() {\r\n        if (document.getElementById(PREFIX + 'estilos')) return;\r\n        const style = document.createElement('style');\r\n        style.id = PREFIX + 'estilos';\r\n        style.textContent = `\r\n          #${CONTAINER_ID}{--mp-verde:#174d3a;--mp-verde2:#247358;--mp-fundo:#f4f7f5;--mp-texto:#18312a;--mp-borda:#d7e1dc;box-sizing:border-box;width:100%;max-width:100%;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,Arial,sans-serif;color:var(--mp-texto);line-height:1.45}\r\n          #${CONTAINER_ID} *,#${CONTAINER_ID} *::before,#${CONTAINER_ID} *::after{box-sizing:border-box}\r\n          #${CONTAINER_ID} .${PREFIX}app{overflow:hidden;border:1px solid var(--mp-borda);border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(20,66,52,.10)}\r\n          #${CONTAINER_ID} .${PREFIX}cabecalho{padding:20px 22px 14px;background:linear-gradient(135deg,#123f31,#247358);color:#fff}\r\n          #${CONTAINER_ID} .${PREFIX}titulo{margin:0;font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:750;color:#fff}\r\n          #${CONTAINER_ID} .${PREFIX}subtitulo{margin:5px 0 0;color:#dcece6;font-size:.94rem}\r\n          #${CONTAINER_ID} .${PREFIX}filtros{display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(145px,1fr)) auto;gap:10px;padding:16px 18px;background:var(--mp-fundo);border-bottom:1px solid var(--mp-borda)}\r\n          #${CONTAINER_ID} .${PREFIX}campo{min-width:0}\r\n          #${CONTAINER_ID} .${PREFIX}campo label{display:block;margin:0 0 5px;font-size:.74rem;font-weight:750;letter-spacing:.035em;text-transform:uppercase;color:#426159}\r\n          #${CONTAINER_ID} .${PREFIX}campo input,#${CONTAINER_ID} .${PREFIX}campo select{display:block;width:100%;height:42px;margin:0;padding:0 11px;border:1px solid #bdcec6;border-radius:8px;background:#fff;color:#18312a;font:inherit;font-size:.9rem;box-shadow:none}\r\n          #${CONTAINER_ID} .${PREFIX}campo input:focus,#${CONTAINER_ID} .${PREFIX}campo select:focus{outline:3px solid rgba(36,115,88,.18);border-color:var(--mp-verde2)}\r\n          #${CONTAINER_ID} .${PREFIX}limpar{align-self:end;height:42px;padding:0 16px;border:0;border-radius:8px;background:var(--mp-verde);color:#fff;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer}\r\n          #${CONTAINER_ID} .${PREFIX}limpar:hover{background:#0f382b}\r\n          #${CONTAINER_ID} .${PREFIX}status{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:8px 18px;border-bottom:1px solid var(--mp-borda);background:#fff;font-size:.88rem}\r\n          #${CONTAINER_ID} .${PREFIX}aviso{color:#805b00;font-weight:650}\r\n          #${CONTAINER_ID} .${PREFIX}mapa{width:100%;height:clamp(480px,68vh,720px);background:#dce8e3;z-index:1}\r\n          #${CONTAINER_ID} .${PREFIX}rodape{display:grid;grid-template-columns:2fr 1fr;gap:22px;padding:16px 18px;background:#fff;border-top:1px solid var(--mp-borda)}\r\n          #${CONTAINER_ID} .${PREFIX}legenda-titulo{margin:0 0 9px;font-size:.88rem;font-weight:800}\r\n          #${CONTAINER_ID} .${PREFIX}legenda-lista{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0;padding:0;list-style:none}\r\n          #${CONTAINER_ID} .${PREFIX}legenda-item{display:flex;align-items:center;gap:7px;font-size:.78rem}\r\n          #${CONTAINER_ID} .${PREFIX}cor{width:12px;height:12px;flex:0 0 12px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #52645e}\r\n          #${CONTAINER_ID} .${PREFIX}nota{margin:0;padding:10px 12px;border-radius:8px;background:#fff8df;color:#604b08;font-size:.78rem}\r\n          #${CONTAINER_ID} .${PREFIX}marcador{background:transparent;border:0}\r\n          #${CONTAINER_ID} .${PREFIX}ponto{display:grid;place-items:center;width:30px;height:30px;border:3px solid #fff;border-radius:50%;background:var(--mp-cor);color:#fff;font-size:10px;font-weight:850;box-shadow:0 2px 7px rgba(0,0,0,.42);transition:transform .18s,box-shadow .18s}\r\n          #${CONTAINER_ID} .${PREFIX}ponto[data-precisao=\"aproximada\"]{border-style:dashed}\r\n          #${CONTAINER_ID} .${PREFIX}ponto[data-precisao=\"municipal\"]{border-radius:7px}\r\n          #${CONTAINER_ID} .${PREFIX}ponto[data-precisao=\"exata\"]{box-shadow:0 0 0 2px #111,0 2px 7px rgba(0,0,0,.4)}\r\n          #${CONTAINER_ID} .${PREFIX}ponto.${PREFIX}destaque{transform:scale(1.45);box-shadow:0 0 0 7px rgba(255,202,40,.46),0 3px 9px rgba(0,0,0,.55)}\r\n          #${CONTAINER_ID} .${PREFIX}popup{min-width:240px;max-width:330px;color:#18312a}\r\n          #${CONTAINER_ID} .${PREFIX}popup-codigo{display:inline-block;margin-bottom:6px;padding:3px 8px;border-radius:99px;background:#e1eee9;color:#174d3a;font-size:.75rem;font-weight:850}\r\n          #${CONTAINER_ID} .${PREFIX}popup h3{margin:0 0 10px;color:#143d31;font-size:1rem;line-height:1.3}\r\n          #${CONTAINER_ID} .${PREFIX}detalhes{display:grid;grid-template-columns:90px 1fr;gap:5px 8px;margin:0;font-size:.78rem}\r\n          #${CONTAINER_ID} .${PREFIX}detalhes dt{font-weight:750;color:#50665f}#${CONTAINER_ID} .${PREFIX}detalhes dd{margin:0}\r\n          #${CONTAINER_ID} .${PREFIX}botao-link{display:inline-block;margin-top:12px;padding:9px 12px;border-radius:7px;background:#174d3a;color:#fff!important;text-decoration:none!important;font-size:.8rem;font-weight:750}\r\n          #${CONTAINER_ID} .marker-cluster div{display:grid;place-items:center;font-weight:800;color:#173c31;background:#fff;border:3px solid #247358}\r\n          #${CONTAINER_ID} .marker-cluster{background:rgba(36,115,88,.3)}\r\n          #${CONTAINER_ID} .leaflet-popup-content{margin:16px 18px}#${CONTAINER_ID} .leaflet-control-attribution{font-size:10px}\r\n          #${CONTAINER_ID} .${PREFIX}erro{padding:18px;border:1px solid #e0b9b9;border-radius:10px;background:#fff1f1;color:#7e2222}\r\n          @media(max-width:980px){#${CONTAINER_ID} .${PREFIX}filtros{grid-template-columns:repeat(2,minmax(0,1fr))}#${CONTAINER_ID} .${PREFIX}limpar{width:100%}}\r\n          @media(max-width:640px){#${CONTAINER_ID} .${PREFIX}cabecalho{padding:16px}#${CONTAINER_ID} .${PREFIX}filtros{grid-template-columns:1fr;padding:13px}#${CONTAINER_ID} .${PREFIX}status{align-items:flex-start;flex-direction:column;padding:9px 13px}#${CONTAINER_ID} .${PREFIX}mapa{height:62vh;min-height:440px}#${CONTAINER_ID} .${PREFIX}rodape{grid-template-columns:1fr;padding:14px}#${CONTAINER_ID} .${PREFIX}detalhes{grid-template-columns:78px 1fr}}\r\n          @media(prefers-reduced-motion:reduce){#${CONTAINER_ID} .${PREFIX}ponto{transition:none}}\r\n        `;\r\n        document.head.appendChild(style);\r\n      }\r\n\r\n      function opcoes(valores, rotulo) {\r\n        return `<option value=\"\">${escapar(rotulo)}<\/option>` + valores.map(valor =>\r\n          `<option value=\"${escapar(valor)}\">${escapar(valor)}<\/option>`\r\n        ).join('');\r\n      }\r\n\r\n      function criarInterface(container) {\r\n        const temas = [...new Set(projetos.map(p => p.tema))].sort((a, b) => a.localeCompare(b, 'pt-BR'));\r\n        const municipios = [...new Set(projetos.map(p => p.municipio))].sort((a, b) => a.localeCompare(b, 'pt-BR'));\r\n        const situacoes = [...new Set(projetos.map(p => p.situacao))].sort((a, b) => a.localeCompare(b, 'pt-BR'));\r\n        container.innerHTML = `\r\n          <section class=\"${PREFIX}app\" aria-label=\"Mapa dos projetos PetroFoz no Amap\u00e1\">\r\n            <header class=\"${PREFIX}cabecalho\"><h2 class=\"${PREFIX}titulo\">Projetos de pesquisa no Amap\u00e1<\/h2><p class=\"${PREFIX}subtitulo\">Explore iniciativas, pesquisadores e \u00e1reas de atua\u00e7\u00e3o no territ\u00f3rio amapaense.<\/p><\/header>\r\n            <div class=\"${PREFIX}filtros\" role=\"search\">\r\n              <div class=\"${PREFIX}campo\"><label for=\"${PREFIX}busca\">Buscar projeto<\/label><input id=\"${PREFIX}busca\" type=\"search\" placeholder=\"C\u00f3digo, projeto ou pesquisador\" autocomplete=\"off\"><\/div>\r\n              <div class=\"${PREFIX}campo\"><label for=\"${PREFIX}tema\">Tema<\/label><select id=\"${PREFIX}tema\">${opcoes(temas, 'Todos os temas')}<\/select><\/div>\r\n              <div class=\"${PREFIX}campo\"><label for=\"${PREFIX}municipio\">Munic\u00edpio<\/label><select id=\"${PREFIX}municipio\">${opcoes(municipios, 'Todos os munic\u00edpios')}<\/select><\/div>\r\n              <div class=\"${PREFIX}campo\"><label for=\"${PREFIX}situacao\">Situa\u00e7\u00e3o<\/label><select id=\"${PREFIX}situacao\">${opcoes(situacoes, 'Todas as situa\u00e7\u00f5es')}<\/select><\/div>\r\n              <button class=\"${PREFIX}limpar\" type=\"button\">Limpar filtros<\/button>\r\n            <\/div>\r\n            <div class=\"${PREFIX}status\" aria-live=\"polite\"><span class=\"${PREFIX}contador\"><\/span><span class=\"${PREFIX}aviso\"><\/span><\/div>\r\n            <div class=\"${PREFIX}mapa\" role=\"application\" aria-label=\"Mapa interativo dos projetos\"><\/div>\r\n            <footer class=\"${PREFIX}rodape\"><div><p class=\"${PREFIX}legenda-titulo\">Temas dos projetos<\/p><ul class=\"${PREFIX}legenda-lista\">${temas.map(tema => `<li class=\"${PREFIX}legenda-item\"><span class=\"${PREFIX}cor\" style=\"background:${coresTema[tema] || '#667'}\"><\/span>${escapar(tema)}<\/li>`).join('')}<\/ul><\/div><p class=\"${PREFIX}nota\"><strong>Sobre a localiza\u00e7\u00e3o:<\/strong> coordenadas referenciais, municipais ou aproximadas n\u00e3o indicam necessariamente o local exato de execu\u00e7\u00e3o da pesquisa. Marcadores tracejados s\u00e3o aproximados; quadrados s\u00e3o municipais.<\/p><\/footer>\r\n          <\/section>`;\r\n        return {\r\n          mapa: container.querySelector('.' + PREFIX + 'mapa'),\r\n          busca: container.querySelector('#' + PREFIX + 'busca'),\r\n          tema: container.querySelector('#' + PREFIX + 'tema'),\r\n          municipio: container.querySelector('#' + PREFIX + 'municipio'),\r\n          situacao: container.querySelector('#' + PREFIX + 'situacao'),\r\n          limpar: container.querySelector('.' + PREFIX + 'limpar'),\r\n          contador: container.querySelector('.' + PREFIX + 'contador'),\r\n          aviso: container.querySelector('.' + PREFIX + 'aviso')\r\n        };\r\n      }\r\n\r\n      function popupHtml(p) {\r\n        const link = p.link && \/^https?:\\\/\\\/\/i.test(p.link) ? `<a class=\"${PREFIX}botao-link\" href=\"${escapar(p.link)}\" target=\"_blank\" rel=\"noopener noreferrer\">Ver detalhes do projeto<\/a>` : '';\r\n        const item = (titulo, valor) => `<dt>${escapar(titulo)}<\/dt><dd>${escapar(valor || 'N\u00e3o informado')}<\/dd>`;\r\n        const coordenada = valor => Number(valor).toLocaleString('pt-BR', { maximumFractionDigits: 6, useGrouping: false });\r\n        return `<article class=\"${PREFIX}popup\"><span class=\"${PREFIX}popup-codigo\">${escapar(p.codigo)}<\/span><h3>${escapar(p.projeto)}<\/h3><dl class=\"${PREFIX}detalhes\">${item('Pesquisador', p.pesquisador)}${item('Local', p.local)}${item('Munic\u00edpio', p.municipio)}${item('Tema', p.tema)}${item('Abrang\u00eancia', p.abrangencia)}${item('Situa\u00e7\u00e3o', p.situacao)}${item('Precis\u00e3o', p.precisao)}${item('Latitude', coordenada(p.latitude))}${item('Longitude', coordenada(p.longitude))}<\/dl>${link}<\/article>`;\r\n      }\r\n\r\n      function criarIcone(p) {\r\n        const precisao = normalizar(p.precisao);\r\n        return window.L.divIcon({\r\n          className: PREFIX + 'marcador',\r\n          html: `<span class=\"${PREFIX}ponto\" data-precisao=\"${escapar(precisao)}\" style=\"--mp-cor:${coresTema[p.tema] || '#667085'}\">${escapar(p.codigo.replace(\/^P\/, ''))}<\/span>`,\r\n          iconSize: [30, 30], iconAnchor: [15, 15], popupAnchor: [0, -13]\r\n        });\r\n      }\r\n\r\n      function iniciarMapa(container) {\r\n        const ui = criarInterface(container);\r\n        const map = window.L.map(ui.mapa, { scrollWheelZoom: true, tap: true, zoomControl: true, preferCanvas: true });\r\n        window.L.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', {\r\n          maxZoom: 19,\r\n          attribution: '&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\" target=\"_blank\" rel=\"noopener noreferrer\">OpenStreetMap<\/a>'\r\n        }).addTo(map);\r\n\r\n        const cluster = window.L.markerClusterGroup({\r\n          showCoverageOnHover: false,\r\n          spiderfyOnMaxZoom: true,\r\n          zoomToBoundsOnClick: true,\r\n          removeOutsideVisibleBounds: true,\r\n          maxClusterRadius: 45\r\n        }).addTo(map);\r\n        const marcadores = new Map();\r\n        const validos = projetos.filter(coordenadaValida);\r\n\r\n        validos.forEach(p => {\r\n          const marker = window.L.marker([p.latitude, p.longitude], { icon: criarIcone(p), title: `${p.codigo} \u2014 ${p.projeto}`, riseOnHover: true });\r\n          marker.bindPopup(popupHtml(p), { maxWidth: 360, minWidth: 250 });\r\n          marker.projeto = p;\r\n          marcadores.set(p.codigo, marker);\r\n        });\r\n\r\n        function obterFiltrados() {\r\n          const termo = normalizar(ui.busca.value);\r\n          return validos.filter(p => {\r\n            const texto = normalizar(`${p.codigo} ${p.projeto} ${p.pesquisador}`);\r\n            return (!termo || texto.includes(termo)) && (!ui.tema.value || p.tema === ui.tema.value) &&\r\n              (!ui.municipio.value || p.municipio === ui.municipio.value) && (!ui.situacao.value || p.situacao === ui.situacao.value);\r\n          });\r\n        }\r\n\r\n        function destacar(marker) {\r\n          container.querySelectorAll('.' + PREFIX + 'destaque').forEach(el => el.classList.remove(PREFIX + 'destaque'));\r\n          const aplicar = () => {\r\n            const elemento = marker.getElement();\r\n            if (elemento) elemento.querySelector('.' + PREFIX + 'ponto')?.classList.add(PREFIX + 'destaque');\r\n          };\r\n          cluster.zoomToShowLayer(marker, () => { map.setView(marker.getLatLng(), Math.max(map.getZoom(), 12)); marker.openPopup(); aplicar(); });\r\n        }\r\n\r\n        function atualizar({ enquadrar = true, selecionarBusca = false } = {}) {\r\n          const filtrados = obterFiltrados();\r\n          cluster.clearLayers();\r\n          filtrados.forEach(p => cluster.addLayer(marcadores.get(p.codigo)));\r\n          ui.contador.textContent = `${filtrados.length} ${filtrados.length === 1 ? 'projeto encontrado' : 'projetos encontrados'} de ${validos.length}`;\r\n          ui.aviso.textContent = filtrados.length ? '' : 'Nenhum projeto corresponde aos filtros selecionados.';\r\n          if (enquadrar && filtrados.length) {\r\n            if (filtrados.length === 1) destacar(marcadores.get(filtrados[0].codigo));\r\n            else map.fitBounds(cluster.getBounds(), { padding: [35, 35], maxZoom: 9 });\r\n          }\r\n          if (selecionarBusca && filtrados.length === 1) destacar(marcadores.get(filtrados[0].codigo));\r\n        }\r\n\r\n        let temporizadorBusca;\r\n        ui.busca.addEventListener('input', () => {\r\n          clearTimeout(temporizadorBusca);\r\n          temporizadorBusca = setTimeout(() => atualizar({ enquadrar: true, selecionarBusca: true }), 180);\r\n        });\r\n        [ui.tema, ui.municipio, ui.situacao].forEach(campo => campo.addEventListener('change', () => atualizar({ enquadrar: true })));\r\n        ui.limpar.addEventListener('click', () => {\r\n          ui.busca.value = ''; ui.tema.value = ''; ui.municipio.value = ''; ui.situacao.value = '';\r\n          atualizar({ enquadrar: true }); ui.busca.focus();\r\n        });\r\n        map.on('popupclose', () => container.querySelectorAll('.' + PREFIX + 'destaque').forEach(el => el.classList.remove(PREFIX + 'destaque')));\r\n        atualizar({ enquadrar: true });\r\n        setTimeout(() => map.invalidateSize(), 150);\r\n      }\r\n\r\n      async function iniciar() {\r\n        const container = document.getElementById(CONTAINER_ID);\r\n        if (!container) {\r\n          console.info('[Mapa Projetos Amap\u00e1] Cont\u00eainer #' + CONTAINER_ID + ' n\u00e3o encontrado; o mapa n\u00e3o foi iniciado.');\r\n          return;\r\n        }\r\n        if (container.dataset.mapaPetrofozIniciado === 'true') return;\r\n        container.dataset.mapaPetrofozIniciado = 'true';\r\n        injetarEstilos();\r\n        try {\r\n          await garantirDependencias();\r\n          iniciarMapa(container);\r\n        } catch (erro) {\r\n          console.error('[Mapa Projetos Amap\u00e1] Falha ao iniciar:', erro);\r\n          container.innerHTML = `<p class=\"${PREFIX}erro\">N\u00e3o foi poss\u00edvel carregar o mapa. Verifique a conex\u00e3o e tente novamente.<\/p>`;\r\n        }\r\n      }\r\n\r\n      if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', iniciar, { once: true });\r\n      else iniciar();\r\n    }());\r\n    <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_thinkrank_schema_form_data":"","_thinkrank_selected_schema_type":"","_thinkrank_additional_schemas":"","_thinkrank_canonical_url":"","_thinkrank_og_title":"","_thinkrank_og_description":"","_thinkrank_og_image":"","_thinkrank_twitter_title":"","_thinkrank_twitter_description":"","_thinkrank_twitter_image":"","_thinkrank_imported_from":"","_thinkrank_focus_keywords":[],"_thinkrank_focus_keyword":"","_thinkrank_robots_meta_enabled":0,"_thinkrank_robots_meta":"","_thinkrank_advanced_robots_meta":"","_thinkrank_primary_category":0,"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3095","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/pages\/3095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=3095"}],"version-history":[{"count":4,"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/pages\/3095\/revisions"}],"predecessor-version":[{"id":3099,"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/pages\/3095\/revisions\/3099"}],"wp:attachment":[{"href":"https:\/\/petrofoz.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=3095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}