# Fase B2 — Geometrías PostGIS y mapa operativo Versión: `0.9.0` ## Objetivo Incorporar ubicación geográfica real al Maestro de Activos y reemplazar el mapa demostrativo por una consulta territorial conectada a PostGIS. ## Modelo La tabla `asset_geometries` mantiene la geometría actual de cada activo: - `POINT`, `LINESTRING` o `POLYGON`; - SRID `4326`; - fuente `WEB`, `ANDROID`, `IMPORT` o `SURVEY`; - precisión en metros; - fecha/hora de captura; - dispositivo; - usuario y fechas de actualización. PostgreSQL valida tipo, rango, validez geométrica y relación con el activo. La columna posee un índice espacial `GIST`. ## API - `GET /api/v3/map/assets` devuelve un `FeatureCollection` GeoJSON; - `GET /api/v3/assets/:id/geometry` consulta la geometría actual; - `PUT /api/v3/assets/:id/geometry` crea o actualiza ubicación y metadatos; - `DELETE /api/v3/assets/:id/geometry` retira la geometría actual. El mapa admite filtros por tipo de activo, estado de información, tipo de geometría y área visible mediante `bbox`. La respuesta se limita a 5000 features e informa si fue truncada. ## Seguridad - lectura y mapa: `assets.read`; - escritura geográfica: `assets.update_geometry`. La migración asigna escritura a `admin`, `supervisor` e `inspector`. Director y auditor conservan lectura territorial. ## Interfaz ### Mapa `/mapa` muestra puntos, líneas y polígonos con: - filtros reales; - selección visual; - datos básicos, jerarquía y estado; - acceso directo al detalle del activo; - aviso de resultados truncados o sin ubicación. ### Editor del activo El detalle del activo permite: - elegir punto, línea o polígono; - marcar vértices sobre el mapa; - deshacer y limpiar; - usar explícitamente la geolocalización del navegador; - registrar precisión, timestamp y dispositivo; - retirar una geometría dejando auditoría. La captura GPS sólo ocurre cuando el usuario presiona “Usar mi ubicación”. ## Trazabilidad Cada creación, reemplazo o retiro genera un evento de auditoría con geometría y metadatos antes/después. El versionado temporal formal de activos se incorpora en una subfase posterior. ## Fuera de B2 - versiones históricas completas y consulta temporal; - media/fotografías; - importaciones masivas; - relevamiento de campo y sincronización Android.