feat: Gestion des secteurs et migration v3.0.4+304

- Ajout système complet de gestion des secteurs avec contours géographiques
- Import des contours départementaux depuis GeoJSON
- API REST pour la gestion des secteurs (/api/sectors)
- Service de géolocalisation pour déterminer les secteurs
- Migration base de données avec tables x_departements_contours et sectors_adresses
- Interface Flutter pour visualisation et gestion des secteurs
- Ajout thème sombre dans l'application
- Corrections diverses et optimisations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
pierre
2025-08-07 11:01:45 +02:00
parent 6a609fb467
commit 599b9fcda0
662 changed files with 213221 additions and 174243 deletions

View File

@@ -0,0 +1,37 @@
-- Script pour diagnostiquer et corriger les problèmes d'index spatial
-- 1. Vérifier s'il y a des géométries vides
SELECT 'Géométries vides:' as diagnostic;
SELECT code, libelle
FROM x_departements
WHERE contour IS NOT NULL AND ST_IsEmpty(contour) = 1;
-- 2. Essayer de créer un index spatial sur une copie de la table pour tester
CREATE TABLE x_departements_test LIKE x_departements;
-- 3. Copier uniquement les départements métropolitains avec contours
INSERT INTO x_departements_test
SELECT * FROM x_departements
WHERE contour IS NOT NULL
AND code NOT IN ('20', '971', '972', '973', '974', '975', '976');
-- 4. Tenter de créer l'index spatial sur la table de test
ALTER TABLE x_departements_test ADD SPATIAL INDEX idx_contour_test (contour);
-- Si ça fonctionne, le problème vient des départements spécifiques
-- Si ça ne fonctionne pas, il y a un problème avec les données géométriques
-- 5. Alternative : recréer les géométries à partir du texte WKT
-- Cela peut corriger certains problèmes de format
UPDATE x_departements d
INNER JOIN x_departements_contours dc ON d.code = dc.code_dept
SET d.contour = ST_GeomFromText(ST_AsText(dc.contour))
WHERE dc.contour IS NOT NULL
AND d.code IN (SELECT code FROM x_departements WHERE contour IS NOT NULL LIMIT 1);
-- 6. Nettoyer
DROP TABLE IF EXISTS x_departements_test;
-- Note : Pour l'instant, l'index normal créé avec contour(32) permettra
-- le fonctionnement de l'API, même si les performances seront moindres
-- qu'avec un vrai index spatial.