-- 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.