File size: 5,027 Bytes
6bda4a6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
/**
* Exemple d'utilisation de la configuration DebugUMAP
* Ce fichier montre comment personnaliser la configuration
*/
import { setConfig, getConfig, validateConfig } from './mapConfig.js';
// ============================================================================
// EXEMPLES D'UTILISATION
// ============================================================================
// 1. Lire une valeur de configuration
const zoomMin = getConfig('zoom.scaleExtent.0', 0.3); // Premier élément du tableau
const zoomMax = getConfig('zoom.scaleExtent.1', 3.0); // Deuxième élément du tableau
console.log(`Zoom range: ${zoomMin} - ${zoomMax}`);
// 2. Modifier une valeur de configuration
setConfig('zoom.initialScale', 0.9); // Zoom initial à 90%
setConfig('glyph.batchLoading.batchSize', 50); // Charger 50 glyphes par batch
// 3. Ajouter une nouvelle couleur de catégorie
const currentColors = getConfig('color.categories', {});
setConfig('color.categories', {
...currentColors,
'script': '#e67e22' // Nouvelle catégorie
});
// 4. Personnaliser les centroïdes
setConfig('centroid.text.fontSize', 18); // Taille de police plus grande
setConfig('centroid.text.strokeWidth', 6); // Bordure plus épaisse
// 5. Activer le mode debug
setConfig('debug.enabled', true);
setConfig('debug.verbose', true);
// ============================================================================
// CONFIGURATIONS PRÉDÉFINIES
// ============================================================================
/**
* Configuration pour un affichage haute performance
*/
export function setHighPerformanceConfig() {
setConfig('glyph.batchLoading.batchSize', 100);
setConfig('glyph.batchLoading.delay', 5);
setConfig('performance.monitoring.enabled', false);
setConfig('centroid.behavior.adaptiveSize', false);
}
/**
* Configuration pour un affichage haute qualité
*/
export function setHighQualityConfig() {
setConfig('glyph.batchLoading.batchSize', 20);
setConfig('glyph.batchLoading.delay', 20);
setConfig('centroid.text.strokeWidth', 6);
setConfig('zoom.transitionDuration', 1000);
}
/**
* Configuration pour mobile
*/
export function setMobileConfig() {
setConfig('ui.responsive.adaptiveUI', true);
setConfig('glyph.batchLoading.batchSize', 30);
setConfig('centroid.text.fontSize', 14);
setConfig('ui.positions.leva', { top: 10, left: 10 });
}
/**
* Configuration pour le développement
*/
export function setDevelopmentConfig() {
setConfig('debug.enabled', true);
setConfig('debug.verbose', true);
setConfig('performance.monitoring.logLevel', 'debug');
setConfig('data.validation.strictMode', true);
}
// ============================================================================
// VALIDATION ET DIAGNOSTIC
// ============================================================================
/**
* Valider la configuration actuelle
*/
export function validateCurrentConfig() {
const result = validateConfig();
if (!result.valid) {
console.error('Configuration invalide:', result.errors);
return false;
}
if (result.warnings.length > 0) {
console.warn('Avertissements de configuration:', result.warnings);
}
console.log('Configuration valide ✅');
return true;
}
/**
* Afficher un résumé de la configuration
*/
export function showConfigSummary() {
console.log('=== RÉSUMÉ DE LA CONFIGURATION ===');
console.log('Zoom:', getConfig('zoom.scaleExtent', []));
console.log('Glyphes par batch:', getConfig('glyph.batchLoading.batchSize', 40));
console.log('Taille de police centroïdes:', getConfig('centroid.text.fontSize', 16));
console.log('Mode debug:', getConfig('debug.enabled', false));
console.log('================================');
}
// ============================================================================
// UTILITAIRES AVANCÉS
// ============================================================================
/**
* Sauvegarder la configuration dans localStorage
*/
export function saveConfigToStorage() {
try {
const config = getConfig('', {});
localStorage.setItem('debugUMAP_config', JSON.stringify(config));
console.log('Configuration sauvegardée dans localStorage');
} catch (error) {
console.error('Erreur lors de la sauvegarde:', error);
}
}
/**
* Charger la configuration depuis localStorage
*/
export function loadConfigFromStorage() {
try {
const saved = localStorage.getItem('debugUMAP_config');
if (saved) {
const config = JSON.parse(saved);
// Appliquer la configuration sauvegardée
Object.keys(config).forEach(key => {
setConfig(key, config[key]);
});
console.log('Configuration chargée depuis localStorage');
return true;
}
} catch (error) {
console.error('Erreur lors du chargement:', error);
}
return false;
}
/**
* Réinitialiser la configuration aux valeurs par défaut
*/
export function resetConfigToDefaults() {
// Recharger le module pour réinitialiser
window.location.reload();
}
|