Files
Investidor-V2/docs/investmoz/gis/interactive-map.md
T
2026-09-29 08:41:57 +02:00

5.5 KiB

Cartografia interactiva — execução e cobertura

29/09/2026. Critério integral do prompt ainda não atingido. Há mapa interactivo implementado, mas nenhuma das seis oportunidades públicas tem coordenadas de local na base. O inventário não contém geometrias de investimento ou de zona. O Excel fornece códigos/designações administrativos, não posições de projectos. O documento da carteira inclui programas nacionais e traçados dependentes de estudos; não permite deduzir uma posição exacta de cada investimento.

Implementado

  • InteractiveInvestmentMap: Leaflet 1.9.4 com arrastamento, zoom, teclado, toque, escala, marcadores individuais e popups construídos por DOM/textContent; não interpola nomes em HTML. Popup inclui nome, sector, localização, corredores, clusters, projectos âncora e ligação à ficha. A lista acessível selecciona e centra o marcador correspondente.
  • Substituído o SVG estático do catálogo. O mapa fica visível com as vistas de resultados; alterações de pesquisa/filtros desencadeiam navegação Inertia com debounce de 350 ms, sem recarregamento integral. Pedidos anteriores são cancelados; carregamento não mantém a lista de ausências de uma consulta anterior.
  • Componente comum integrado no catálogo, ficha pública de oportunidade, dossiers de clusters/corredores/projectos e fichas de ZEE/ZFI/parques. Consulta a mesma API e as mesmas regras de publicação. A vista geométrica de limites das zonas continua separada; não foi transformada em georreferenciação de oportunidades.
  • /api/v1/investment/map reutiliza filtros do catálogo, devolve metadados relacionais públicos e reconcilia matched_count, georeferenced_count, unlocated, truncated e complete. Não confunde centróide provincial com local de investimento. Só geometrias pontuais de locais (site) públicos, válidos, WGS84, activos e com ascendentes públicos são elegíveis.
  • Um marcador por oportunidade; quando existem vários locais elegíveis, a edição explícita da posição tem precedência sobre os locais legados, seguindo-se ordem estável de UUID. As geometrias legadas não são apagadas. Não se deslocam coordenadas para separar marcadores coincidentes; cada um continua acessível na lista.
  • Formulário Posição do investimento no mapa na edição da oportunidade: latitude, longitude, referência da fonte e confirmação expressa de correspondência ao local/divulgação. GET/POST /management/opportunities/{id}/coordinates, gestor autenticado/verificado, CSRF, limites de coordenadas, controlo de versão, transacção, FK e auditoria. Pontos retirados de divulgação não são reactivados por esta operação. A confirmação editorial não é validação geodésica independente.

Mapa base

Documentação Leaflet e política do serviço de tiles OSM. URL HTTPS, atribuição visível e cache normal do navegador; sem prefetch/download offline. VITE_MAP_TILE_URL permite substituir o endereço no build; se substituir o fornecedor, ajustar também a atribuição/licença no componente. Falha do mapa base apresenta aviso e preserva marcadores/lista. Testes automatizados bloqueiam pedidos de tiles, evitando descarregamentos automáticos do serviço comunitário.

Verificação executada

  • Suite completa: 172 testes / 1.766 verificações, aprovada em 45,176 s; PHPStan e Pint aprovados.
  • TypeScript e lint dos componentes verificados; build de 2.370 módulos aprovado.
  • tools/investment-map-browser.mjs, exclusivamente QA com um investimento sintético: marcador, popup, ligação, controlo de zoom, pesquisa automática, remoção do marcador após filtro sem correspondências e ausência de recarregamento integral. 390/1.440 px sem overflow, zero excepções JavaScript. Tráfego de tiles bloqueado no teste; não é evidência de disponibilidade externa.
  • Nenhuma coordenada sintética foi inserida na base real. Não houve migration neste incremento.

Reconciliação e impedimentos concretos

map-coverage.json, gerado por php tools/investment-map-coverage.php, enumera as seis oportunidades públicas: 0 georreferenciadas, 6 sem coordenadas. Não estão silenciosamente excluídas: a interface identifica-as, mas a representação cartográfica obrigatória de cada uma permanece por cumprir.

Para terminar, faltam as coordenadas, moradas exactas ou plantas que permitam identificar os locais, ou a definição documental do que representa um programa nacional sem local único. Foi pedida a localização dessas fontes; não é um pedido de nova autorização de implementação. Não usar sedes, capitais ou centros provinciais como se fossem o local do investimento.

Também permanecem por concluir: georreferenciação de todos os registos aplicáveis, integração dos restantes consumidores da suite, mapa privado de todos os rascunhos e paginação cartográfica além de 1.000 oportunidades (a API assinala truncagem, sem alegar cobertura). Limites jurídicos/geometrias de zonas e projectos lineares não se tornam pontos por este incremento. A aprovação integral só pode ser declarada depois de reconciliar esses itens e obter complete=true com evidência de precisão.

Reversão: retirar os componentes e rotas deste incremento, conservando geometrias e auditoria; não executar rollback destrutivo das tabelas geográficas partilhadas. Ficheiros legados, referências administrativas e associações existentes foram preservados.