IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NetBeans Java Discussion :

Créer une application Java avec NetBeans


Sujet :

NetBeans Java

  1. #21
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    BON LA JE VAis vous expliquer ce que j'ai fait ... dans un premier temps jai pris la carte (carte de la france) et je lai mettre en background du JFrame form puis mettre des bouton au niveau de chaque region qui une on click sur la region une boite de dialogue s'affiche les donnees qui sont statique. jai mis un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JOptionPane.showMessageDialog
    .. mais la recuperation des donnees au niveau de la base de donnee me fait defaut

    vous en pensez quoi

  2. #22
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si tu pars d'une image de la carte de France, tu n'auras aucun moyen simple de déterminer où se trouvent les régions. Si tu le fais à la main, en scanant les lignes de régions, si tu les as sur ta photo, ça va te prendre un temps considérable et ce sera fastidieux, et pas forcément exempt d'erreurs (ou alors, il te faudra faire une application, ou tu stockeras des clics faits au jugé). Maintenant, tu peux combiner les deux (la photo et la carte vectorielle comme je t'ai montrée) : il faut juste pouvoir avoir une image qui a une taille identique aux régions, ou adapter l'une à l'autre. Maintenant, il faut voir le besoin réel : que réprésente ta carte de France ? Une vision schématique (comme dans mon exemple), une vision géographique, avec le dessin des zones de montagnes, les routes, les rivières, etc... une photo satélite, que sais-je ?

    Par ailleurs, pour récupérer les données depuis une base, regarde un tutoriel JDBC pour voir comment faire ça.

    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #23
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    ofaite c'est la carte vectoriel du senegal et voici la carteNom : SN-regdpt.gif
Affichages : 284
Taille : 25,3 KoNom : carte_senegal.jpg
Affichages : 431
Taille : 220,8 Ko

  4. #24
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Voilà avec la carte du Sénégal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    public class MapPanel extends JPanel { // une classe qui permet d'afficher un ensemble de région et de gérer la sélection d'une région
     
    	private static final Color SELECTION_COLOR = new Color(0,0,0,164); // la couleur utilisée pour marquer une sélection : il s'agit d'un noir transparent (le 164 est une transparence de 255/164=64% environ)
    	private final List<MapRegion> regions = new ArrayList<>(); // la liste des régions affichées
    	private final EventListenerList regionSelectionListenerList; // un conteneur d'écouteur d'évenement spécifique pour gérer la sélection (non indispensable, mais plus simple à gérer)
    	private Dimension preferredSize = new Dimension(0,0); // la taille du panel (à 0,0 au début, puisque pas de région
    	private MapRegion selectedRegion; // la région actuellement sélectionnée
    	private Point offset = new Point(0,0);
    	private AffineTransform offsetTransform = new AffineTransform();
     
    	public MapPanel() {
    		regionSelectionListenerList = new EventListenerList(); // créé le conteneur d'écouteur d'évenement
    		addMouseListener(new MouseAdapter() { // un écouteur de souris pour gérer le clic sur région
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				if ( e.getClickCount()==1 && e.getButton()==MouseEvent.BUTTON1 ) { // si un clic sur le bouton de clic de la souris
    					for(MapRegion region : regions) { // on parcourt toutes les régions
    						if ( offsetTransform.createTransformedShape(region.path).contains(e.getPoint()) ) { // si la forme de la région contient le point de la souris
    							fireRegionSelected(region); // alors on envoi l'évenment "région cliquée"
    						}
    					}
    				}
    			}
    		});
    	}
     
    	public void select(MapRegion region) { // cette méthode permet de sélection une région (ou de désectionner en passant null)
    		selectedRegion=region; // on affecte la région sélectionnée avec le paramètre
    		repaint(); // on redessine le panel (pour que la région sélectionnée se marque comme étant sélectionnée, ou que la région déselectionnée ne se marque plus comme étant sélectionnée
    	}
     
    	public void register(MapRegion region) { // cette méthode permet d'ajouter une nouvelle région
    		regions.add(region); // on stocke la nouvelle région dans la liste de régions
    		Rectangle bounds = null; // on veut calculer la taille du composant (soit la taille minimum pour afficher toutes les régions) : on va faire l'union de toutes les bounds
    		// les bounds d'une forme c'est le rectangle horizontal minimum qui contient l'ensemble de la forme (quelque soit la forme, un triangle, un cercle, une forme complexe représentant une région d'un pays, etc...)
    		for(MapRegion reg : regions) { // on parcourt toutes les régions
    			if ( bounds==null ) {
    				bounds=reg.path.getBounds(); // pas d'union de la première avec la précéndente, parce que pas de précédente
    			}
    			else {
    				bounds = bounds.union(reg.path.getBounds()); // on fait l'union de la zone de la région courante avec la taille servant à faire l'union de toutes les bounds
    			}
    		}
    		this.offset = new Point((int)bounds.getX(),(int)bounds.getY()); // un offset pour recaler la carte en haut à gauche
    		this.preferredSize=new Dimension((int)bounds.getWidth(),(int)bounds.getHeight()); // la taille du composant est l'espace compris entre 0,0 et maxX, maxY de l'union de tous les bounds (fait un dessin pour t'en rendre compte si nécessaire)
    		this.offsetTransform  = AffineTransform.getTranslateInstance(-offset.getX(), -offset.getY());
    		repaint(); // on a ajouté une nouvelle région : il faut redessiner pour la voir apparaitre
    	}
     
    	@Override
    	public Dimension getPreferredSize() {
    		return preferredSize; // on revoit la taille préférentielle du composant, qui est la taille minimum pour afficher toutes les régions (voir méthode register)
    	}
     
    	@Override
    	protected void paintComponent(Graphics g) { // pour dessiner le composant
    		super.paintComponent(g); // on appelle toujours le dessin standard (dessine le fond du composant)
    		g.translate(-offset.x, -offset.y); // permet de recaler la carte en haut à gauche
    		final Graphics2D g2d=(Graphics2D)g; // on a besoin d'accèder à des méthodes spécifiques de Graphics2D
    		g2d.setFont(g2d.getFont().deriveFont(Font.BOLD,12)); // on passe la police actuelle en gras et taille 12 pour afficher les noms de régions
    		for(MapRegion region : regions) { // on parcourt toutes les régions
    			g2d.setPaint(region.color); // on sélectionne la couleur de fond pour tous les dessins qu'on fait après
    			g2d.fill(region.path); // on rempli la forme de la région avec la couleur sélectionnée
    			if ( region==selectedRegion ) { // si la région est sélectionnée
    				g2d.setColor(SELECTION_COLOR); // on sélectionne la couleur de sélection
    				g2d.fill(region.path); // on remplit la forme à nouveau : comme la couleur de sélection est transparent, son noir va se combiner avec la couleur de la forme qu'on a remplie juste avant
    			}
    			g2d.setColor(getForeground()); // on utilise la couleur standard du foreground (noir par défaut)
    			g2d.draw(region.path); // on dessine le contour de la forme, pour avoir une bordure
    		}
    		for(MapRegion region : regions) { // on parcourt toutes les régions 
    			Point2D loc = getStringLocation(g2d, region.path.getBounds2D(), region.name, SwingConstants.CENTER, SwingConstants.CENTER); // on détermine la position du texte de nom de région 
    			g2d.drawString(region.getName(), (int)loc.getX(), (int)loc.getY()); // on affiche le nom de région 
    		}
    	}
     
    	public void addRegionSelectionListener(RegionSelectionListener actionListener) { // cette méthode sert à ajouter un écouteur d'évenements de sélection de région
    		regionSelectionListenerList.add(RegionSelectionListener.class, actionListener); // on ajoute l'écouteur au conteneur d'écouteur
    	}
     
    	public void removeRegionSelectionListener(RegionSelectionListener actionListener) { // cette méthode sert à supprimer un écouteur d'évenements de sélection de région
    		regionSelectionListenerList.remove(RegionSelectionListener.class, actionListener); // on retire l'écouteur du conteneur d'écouteur
    	}
     
    	private void fireRegionSelected(MapRegion region) { // cette méthode permet d'envoyer un évenement de sélection de région (qui dit "on a cliqué sur telle région"
    		for(RegionSelectionListener listener : regionSelectionListenerList.getListeners(RegionSelectionListener.class)) { // on parcourt tous les écouteurs stockées dans le conteneur
    			listener.selected(region); // on envoie l'évenement
    		}
    	}
     
    	public static class MapRegion { // cette classe représente une région
     
    		// j'ai limité la notion de région aux attributs suivant :
    		private final Shape path; // une forme (quelconque : ça peut être un rectangle, un cercle, un polygone, une forme complexe comme celle d'une région d'un pays
    		private final Paint color; // une peinture de remplissage (ça peut être une couleur, mais aussi une texture, une photo, etc.)
    		private final String name; // un nom de région
    		private final String data; // un texte de description (on pourrait ici avoir plusieurs attributs : un pour le nombre d'habitant, un pour la superficie, etc, mais pour un POC un texte est suffisant)
     
    		public MapRegion(Shape path, Paint color, String name, String data) { // pour créer une nouvelle région
    			this.path=path;
    			this.color=color;
    			this.name=name;
    			this.data=data;
    		} 
     
    		public String getData() { // retourne la description de la région
    			return data;
    		}
     
    		public String getName() { // retourne le nom de la région
    			return name;
    		}
     
    	}
     
    	public static interface RegionSelectionListener extends EventListener { // définit un écouteur d'évenement spécifique pour la sélection de région
     
    		void selected(MapRegion region); // l'évenement est juste la région qu'on a cliquée
     
    	} 
     
    	public static void main(String[] args) { // le programme principal de démo
     
    		JFrame frame = new JFrame(); // on créé une fenêtre
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // pour que l'application s'arrête complètement lorsqu'on ferme la fenêtre
     
    		final MapPanel mapPanel = new MapPanel(); // on créé un panel d'affichage de régions
     
    		// on enregitre 4 régions différentes, leur forme étant créées par les méthode createRegion1, createRegion2, etc... on indique la couleur, le nom, et le texte de description (les paramètres attendus par le constructeur de la classe MapRegion)
    		for(MapRegion region : createRegions(SENEGAL_REGIONS)) {
    			mapPanel.register(region);	
    		}
     
    		// on enregistre un écouteur d'évenement de sélection de régions qui va appeler la méthode selectRegion en lui passant le panel d'affichage de régions et la région cliquée (reçue par l'évenement)
    		mapPanel.addRegionSelectionListener(new RegionSelectionListener() {
     
    			@Override
    			public void selected(MapRegion region) {
    				selectRegion(mapPanel, region);
    			}
     
    		}); 
     
    		frame.add(mapPanel); // on ajoute le panel d'affichage de région à la fenêtre (par défaut il se place au centre)
     
    		frame.pack(); // on demande un dimensionnement automatique (ça va utiliser le preferredSize calculée dans MapRegiion, parce que c'est comme ça que fonctionne le LayoutManager affectée par défaut au contentPane d'une JFrame à la création)
    		frame.setLocationRelativeTo(null); // on centre la fenêtre
    		frame.setVisible(true); // on affiche la fenêtre
     
    	}
     
    	private static void selectRegion(MapPanel mapPanel, MapRegion region) { // cette méthode permet de réagir au clic sur une région
    		mapPanel.select(region); // on marque la région cliquée comme sélectionnée
    		showData(region.getName(), region.getData()); // on affiche les informations 
    		mapPanel.select(null); // comme la fenêtre d'affichage des informations est bloquante, on revient ici seulement quand elle est fermée, donc lorsqu'elle est fermée, on dit que la région n'est plus sélectionnée
    	}
     
    	private static void showData(String name, String data) { // on affiche les informations dans un dialogue modal (bloquant l'UI derrière = tant qu'on clique pas sur OK, on ne peut plus rien faire dans la JFrame)
    		JOptionPane.showMessageDialog(null, data, "Région "+name, JOptionPane.INFORMATION_MESSAGE);
    	}
     
    	// http://plugins.spip.net/svgmap.html (extrait du fichier de définitions des pourtours de région augmenté des informations supplémentaires nécessaires
    	private final static String[][] FRANCE_REGIONS = {
    			{"M323.34,117.03l-2.08,4.81l-23.76-1.75l-6.13-7.29l-7.23,2.37l-5.39-3.77l-15.95,2.04l0.36-13.6l3.78-5.62l-2.97-3.64l4.1-12.98l-2.31-8.85l-5.27-7.94l0.9-17.17l3.77-5.27l6.35,4.65l10.14,0.57l7.34,8.19l13.89-0.61l-2.41,6.26l26.82,4.56l4.11,6.19l9.94-3.3l7.6,2.48l9.93-2.61l6.39,5.9l5.76-4.26l0.38,11.07l-6.36,10.2l-3.58,15.72l-17.57,3.02l3.91,10.65l-5.72-0.76l0.7,14.48l-9.31,2.29L323.34,117.03z","Picardie","#5BC4ED","Blahblah"},
    		{"M263.19,99.9l-0.41,13.54l-9.44,4.66l-2.5,13.32l-17.88,6.74l-6.21-9.89l-3.18-5.44l-7.77-1.84l1.32-17l-4.7-13.87l7.48-1.81l7.04,0.39l-10.02-2.22l-3.62-0.77l-6.42-1.2l3.65-7.85l9.18-6.15l12.36-2.92l15.36-5.52l9.35-4.47l4.22-5.88l-0.48,9.14l5.21,7.87l2.31,8.85l-4.1,12.98l3.03,3.7L263.19,99.9z","Haute-Normandie","#E6C199","Blahblah"},
    		{"M223.56,122.83l9.4,15.34l-0.64,6.06l1.09,3.88l-0.55,8.02l-6.34,2.49l-0.2,7.42l-6.42-4.65l-7.71-2.93l0.05-4.72l-3.36-4.63l-15.58,4.09l-0.86-7.5l-6.43-5.67l-19.89,5.66l-4.75-5.84l-14.94-2.6l-4.36,5.86l-7.08-4.01l-0.06-6.24l8.46-0.78l-5.51-6.13l1.89-27.39l-7.93-20.16l2.4-6.25l-4.54-3.87l3.27-2.32l4.83,3.89l10.73,0.04l6.92-2.11l3.26,1.85l-0.06,4.99l-3.14,4.54l3.82,10.21l5.37,0.02l32.66,6l8.2-3.34l6.86-1.92l4.7,13.87l-1.32,17L223.56,122.83z","Basse-Normandie","#E66166","Blahblah"},
    		{"M308.04,177.68l-16.31-2.95l-3.94-9.76l-15.24,0.32l-7.77-12.18l-9.31-7.84l-0.19-8.74l-4.45-5.1l2.5-13.32l9.44-4.66l15.95-2.04l5.39,3.77l7.23-2.37l6.13,7.29l23.76,1.75l2.08-4.81l10.09,16.02l3.43,15.88l-4.76,4.2l-1.41,12.08l-13.32,0.35L308.04,177.68z","Île-de-France","#97BF0D","Blahblah"},
    		{"M106.4,187.95l-3.82,8.91l-7.55,2.9l-14.77-0.71l-5.81-5.87l7.35-0.15l-0.33-3.35l-9.61,0.01l-5.22,1.93l-0.05,8.88l-3.11-4.06l1.58-6.57l-1.35-5.07l-6.53-3.7l-2.93,1.51L47,174.85l-12.71-2.49l-1.98-4l-8.45-0.47L24,174l-9.87-4.44c0.8-11.62-13.39-16.11-14.13-16.35l14.68,0.28l6.43-2.98l-6.34-6.46l-2.44,2.64l-1.5-2.86l-3.72-3.54l4.14-2.54l3.71,3.54l9.12-1.15l-5.32-4.74l3.61-3.12l-8.08,2.31l-10.18-0.01l-2.99-5.72l4.02-0.88l-0.22-5.01l15.63-5.23l3.18,2.96l13.74-2.56l5.29,5.29l3.83-6.45l2.94,6.56l11.52-11.29l8.45,0.47l10.28-3.19l-1.02,6.61l4.92,4.04l8.13,13.23l9.39-5.03l9.17-1.7l-0.46,6.64l5.78-1.9l2.27,2.19l3.05-0.82l-0.26-4.46l6.54-0.47l-1.29,2.16l0.94,2.82l7.98,0.04l0.06,6.24l7.08,4.01l4.36-5.86l9.72,1.65l-1.12,14.23l-4.21,3.65l4.04,11.06l-0.32,4.7l-7.04-0.39l-0.87,4.39l-5.42,7.37l-7.44-4.72l-6.62,5.74l-7.31-0.68l-4.73,3.06L106.4,187.95z","Bretagne","#64A1D3","Blahblah"},
    		{"M383.88,184.86l0.27,0.34l-12.26,5.51l-7.63,4.2l-3.67-4.1l-11.38,1.03l-6.29-15.35l-6.72-0.94l1.02-6.6l-6.53-3.75l1.41-12.08l4.76-4.2l-3.43-15.88l9.31-2.29l-0.7-14.48l5.72,0.76l-3.91-10.65l17.57-3.02l1.11-3.83l2.47-11.9l6.36-10.2l-0.38-11.07l11.42,0.93l12.89-10.61l0.24,21.11l5.59,0.87l15.37,14.69l-3,2.66l-7.78-2.16l-7.95,19.88l-1.56,10.68l4.91,2.44l-2.04,13.27l-6.2-0.35l3.31,9.01l5.6,2.06l14.97,12.48l-0.72,6.42l10.34,1.69c0.02,0.41,0.27,8.35,0.21,9.17l-2.75,2.86l8.97,9.44l-8.02,9.82l0.52,4.75l-3.84,2.29l-2.09-2.34l-6.03,5.49l-11.73-2.05l-5.18-3.58l0.54-7.78L383.88,184.86z","Champagne-Ardenne","#E09C63","Blahblah"},
    		{"M490.31,170.33l-3.83-1.88l-1.6-9.52l8.04-9.13l3.24-6.89l-4.29-3.58l-6.94,2.39l-4.57-7.47l5.08-8.05l8.76,5.52l10.15-1.14l2.47-7.08l4.26-0.32l22.82,5.16l-2.9,9.28l-7.78,6.23l-14.77,41.93l1.98,4l-6.98,15.16l3.41,7.45l-7.17,9.59l-5.09,0.79l-2.5,3.53l-4.72-6.09l-1.33-4.58l-4.76-4.7l-1.11-5.09l-6.74-3.09l9.31-17l1.15-8.54L490.31,170.33z","Alsace","#CCB32F","Blahblah"},
    		{"M193.29,153.19l15.58-4.09l3.36,4.63l-0.05,4.72l7.71,2.93l6.42,4.65l7.1,7.92l-5.86,0.41l-0.59,11.58l-9.1,5.56l-0.13,7.93l-18.79,1.2l-1.54,16.2l-6.97,4.8l1.63,6.94l-6.44,2.87l-22.93-0.97l-5.11,4.62l-19.5-5.83l10.5,9.61l0.96,6.45l10.43,8.63l-3.72,4.79l0.83,12.54l3.29,3.45l-7.87,3.96l-2.08-3.46l-14.09-0.51l-8.07-1.85c-0.51-0.52-10.03-10.28-10.86-10.6c-0.82-0.32-4.31-0.51-4.48-0.52l-3.59-13.54l-10.07-9.72l4.1-2l-1.14-3.95l6.18-3.54l1.02-2.43l-8.09-5.74l3.84-6.45l14.44-0.3l-15.32-3.35l-6.44,3.24l-11.04-3.95l4.05-1.44l-1.36-4.8l5.53-4.01l7.55-2.9l3.82-8.91l8.71-0.66l4.73-3.06l7.31,0.69l6.62-5.74l7.44,4.72l5.42-7.37l0.87-4.39l7.04,0.39l0.32-4.7l-4.04-11.06l4.21-3.65l1.12-14.23l5.22,0.96l4.75,5.84l19.89-5.66l6.36,5.6L193.29,153.19z","Pays de la Loire","#EBFB94","Blahblah"},
    		{"M270.86,280.97l-17.31-0.39l-9.38,0.96l-10.41-2.13l-8.2-15.69l1.29-9.4l-6.25-1.52l-9.64-12.85l-10.22,2.41l-0.06-10.24l-8.63-3.56l-1.63-6.94l6.97-4.8l1.41-16.23l18.92-1.17l0.13-7.93l8.99-5.74l0.71-11.4l5.86-0.41l-7.1-7.92l0.2-7.42l6.44-2.34l0.55-8.02l-1.19-4.02l0.64-6.06l17.88-6.74l4.45,5.1l0.33,8.95l9.17,7.63l7.77,12.18l15.24-0.32l3.94,9.76l21.25,3.87l0.77,13.37l-5.27,10.82l3.33,7.93l-4.67,3.26l-0.64,7.7l4.64,6.37l-1.22,17.7l3.49,6.86l-0.17,4.07l0.02,2.65l-21.8,5.58l-2.2,11.54l-13.94,5.32L270.86,280.97z","Centre","#ABDAC3","Blahblah"},
    		{"M311.82,210.72l-3.33-7.93l5.27-10.82l-0.77-13.37l-4.94-0.92l9.32-12.12l13.32-0.35l6.48,3.56l-1.02,6.6l6.72,0.94l6.29,15.35l11.37-1.03l3.68,4.09l19.89-9.71l13.08,14.66l-0.8,7.45l5.17,3.58l11.73,2.05l5.34,4.46l-5.56,6.9l2.49,4.86l-0.82,6.16l-13.07,19.23l6.91,6.53l-7.23,2.37l5.98,7.56l-0.86,9.21l-17.21-0.13l-2.1,13.97l-3.64,4.41l-9.61-8.35l-10.62,10.51l-10.98-1.23l-4.45-4.63l3.45-5.42l0.1-9.71l-7.9-4.33l-7.37-12.7l-7.68,5.47l-15.01-3.62l-0.19-4.94l0.15-6.72l-3.49-6.86l1.22-17.7l-4.64-6.37l0.64-7.7L311.82,210.72z","Bourgogne","#FBF083","Blahblah"},
    		{"M383.51,298.29l3.64-4.41l2.1-13.97l17.21,0.13l2.13,3.93l-4.89,4.06l8.24,7.69l5.62-3.57l5.89,4.76l19.82-12.77l3.81,11.42l-8.38,6.76l1.31,3.54l1.27-0.07l11.14-5.75l0.16-6.38l7.16-5.43l17.17,0.96l2.49,9.02l-6.36,2.14l3.25,6.01l8.31,6.57l-1.11,7.99l-8.66,2.58l-0.44,6.36l7.76,6.27l1.6,9.54l7.09,3.72l-3.09,3.99l-0.36,9.14l-5.39,0.26l-4.81,4.17l-11.8,1l-11.23,5.06l-7.45-2.64l-0.38,5.54l7.67,3.48l-0.81,7.73l-7.16-2.77l-7.14,1.13l-3.28,2.32l-4.03,1.16l-5.39,8.58l-5.11,0.23l-3.08,3.69l4.63,2.55l-2.22,3.49l-7.37,0.42l-3.08,3.71l4.52,4.14l4.43,1.36l3.89,5.85l-2.73,3.02l-3.02-1.28l-4.26,4.08l-9.2-6.84l-8.49,3.19l5.49-8.77l-12.69,3.74l-6.85-3.31l-13.39,1.61l0.5-3.17l-5.84-1.29l-2.89,5.11l-8.48-4.09l-0.24-4.73l-4.32-2.88l-5.12-20l18.33-7.58l-0.24-4.73l3.16-0.66l1.2-5.21l4.24-0.03l1.33-6.87l-3.96-8.28l-4.28,0.59l-1.66-4.53l-13.67,1.45l2-8.5l-8.76-16.31l1.47-4.92l-4.41-5.66l6.36-6.17l1.31-14.92l4.19-0.46l4.45,4.63l10.98,1.23l10.62-10.51L383.51,298.29z","Rhône-Alpes","#F1A1AC","Blahblah"},
    		{"M218.03,391.29l-0.2,2.9l-4.49,3.64l1.67,8.48l-7.32-0.3l-0.44,2.19l3.98,3.83l-2.6,8.86l-8.28,1.2l-0.44,2.32l-3.79,1.84l-8.54-3.25l-7.54,2.79l-8.66-0.44l-3.77,6.13l-1.71-3.98l-11.64,4.9l0.7,14.48l-6.05,5.25l12.4-0.62l0.78,9.09l3.28,1.57l-0.24,7.6l-11.08,8.98l0.44,5.82l-5.32-0.7l-1.41,12.3l-15.21-0.85l-5.07-8.34l-20.3-8.91l-1.96-4.27l-4.55,4.46l-5.8-1.99l4.39-10.3l-3.92-4.67l-5.04,3.33l-2.48-5.14l-5.06-0.28l-1.18-3.4l7.44-1.25l6.95-4.73l6.95-8.88l7.23-18.76l6.68-35.45l1.53-5.75l9.9-0.01l-4.31-7.18l-4.51,3.92c0.15-0.66,10.17-41.46,7.97-50.09l3.64-3.68l0.75,5.59l8.95,9.38l5.41,20.02l-0.86-19.01l7.09-0.29l4.43,3.44l0.1,6.67l6.96,1.5l6.93,6.84l4.35-3.33l1.05-4.33l11.03-5.41l-0.1-6.66l6.91-1.84l4.79-11.95l8.24-4.51l10.61,6.47l9.21,12.04l4.68-0.3l-0.49,7.06l-4.68,6.4l7.9,8.49l-0.17,10.55l-8.87,13.93l0.21,5.16L218.03,391.29z","Aquitaine","#FCEA0D","Blahblah"},
    		{"M419.99,487.29l-13.23-0.74l-4.35-2.46l4.47-3.36l-5.61-4.75l-9.49,2.25l-3.55-5.76l-5.64-0.31l-2.07,5.44l-8.9-2.16l-3.83-5.77l-9.84-0.83l0.64-5.24l8.15-1.36l-0.62-5.44l7.48-1.8l1.45-8.8l10.35-6.65l-0.97-6.34l-6.39-9.89l2.99-6.5l6.85,3.31l12.69-3.74l-5.49,8.77l8.49-3.19l9.2,6.84l4.26-4.08l3.02,1.28l2.73-3.02l-3.89-5.85l-4.43-1.36l-4.52-4.14l3.08-3.71l7.37-0.42l2.22-3.49l-4.63-2.55l3.08-3.69l5.11-0.23l5.39-8.58l4.03-1.16l3.28-2.32l7.14-1.13l7.16,2.77l0.81-7.73l-7.67-3.48l0.38-5.54l7.45,2.64l11.23-5.06l10.83,16.99l6.99,1.23l0.94,9.07l-4.48,1.29l-2.32,2.59l-2.78,7.16l4.21,4.53l-2.83,6.08l4.78,4.14l10.1,5.28l11.63,3.42l11.17-2.15l3.13,7.95l-7.5,6.24l-4.25,12.54l-11.69,1.28l-7.76,10.12l-5.47-0.17l-5.28,9.55l-6.27,0.76l-4.91,5.55l6.14,1.19l-6.5,6.42l-8.57-0.89l-2.29,4.59l-9.72-2.49l0.76,5.33l-11.92-3.45l0.78,5.04l-7.95-3.5L419.99,487.29z","Provence-Alpes-Côte d'Azur","#3875FF","Blahblah"},
    		{"M520.93,495.94l5.25,0.65l-0.26,14.49l3.85,12.02l-0.57,18.6l-6.99,6.58l0.34,5.02l-2.89,21.22l-5.52,6.35l-6.9-6.5l-8.45-0.48l1.44-3.56l-3.75-3.79l5.48-5.8l-9-1.61l3-6.92l-5.42-0.82l5.42-7.74l-6.42-0.82l-0.57-6.75l3.42-2.63l-0.04-5.46l7.04-11.83l9.2-2.26l5.77-3.51l3.95,1.83l2.8-15.95L520.93,495.94z","Corse","#FD9164","Blahblah"},
    		{"M297.91,454.21l-7.42,5l-5.72-3.1l-5.93,4.11l4.57,7.47l-7.04,3.72l-12.7-4.31l-0.57,4.14l-8.2-4.07l-4.18,2.67l-6.16-2.51l-0.72,4.49l-5.38,0.26l-0.22,8.23l10.87,9.08l-0.17,9.5l-6.74,6.05l5.92,4.76l5.17-1.1l2.8,4.5l-16.25,10.2l-5.97-2.04l1.43-4.36l-4.59-3.04l-9.03-0.23l-3.75-7.15l-5.97,0.5l-13.71-7.55l-7.63-1.37l-0.69,9.97l-8.88-2.44l-3.96-0.28l-4.66,1.96l-4.54-3.87l-9.43,0.9l-10.72-7.86l1.43-12.53l5.32,0.7l-0.46-5.58l11.1-9.22l0.22-7.37l-3.28-1.56l-0.77-9.33l-12.4,0.62l6.05-5.25l-0.7-14.48l11.64-4.9l1.71,3.98l3.77-6.13l8.64,0.68l7.55-3.03l8.54,3.25l3.79-1.84l0.44-2.32l8.28-1.2l2.6-8.86l-3.98-3.83l0.44-2.19l7.32,0.3l-1.67-8.48l4.49-3.64l0.2-2.9l7.45-1.39l-0.21-5.16l8.87-13.93l10.56,2.01l18.09-1.13l-1.64,9.09l5.51,1.98l-1.73,8.79l3.3,1.43l11.79,1.08l12.53-17.63l5.51,10.17l3.41-0.22l1.03,9.64l5.05,8.61v16.38l10.25,3.07l-3.08,6.7l7.21,2.98l-5.34,3.59l-0.03,4.72l-6.82,4.62l-4.4-1.92l-4.06,9.77L297.91,454.21z","Midi-Pyrénées","#94F800","Blahblah"},
    		{"M276.37,471.41l7.04-3.72l-4.57-7.47l5.93-4.11l5.72,3.1l7.42-5l3.37,0.33l4.06-9.77l4.28,1.76l6.94-4.46l0.03-4.72l5.34-3.59l-7.21-2.98l3.08-6.7l-10.25-3.07v-16.38l-5.05-8.61l6.1-14.8l8.88-5.75l5.9,4.63l0.46,5.58l3.96-0.05l2.1-5.71l3.11-0.11l0.26,4.32l7.98,3.23l5.12,20l4.32,2.88l0.24,4.73l8.48,4.09l2.89-5.11l5.84,1.29l-0.5,3.17l13.39-1.61l-2.99,6.5l6.39,9.89l0.97,6.34l-10.35,6.65l-1.45,8.8l-7.48,1.8l0.74,5.6l-8.28,1.2l-0.64,5.24l-6.46-0.64l-2.47-5.13c-12.11-0.68-19.38,11.31-19.76,11.94c-2.79-0.72-10.17,5.21-10.56,5.51c-7.31-0.69-10.98,2.01-11.18,2.15c-11.16,6.08-10.93,22.19-10.92,23.04l1.24,14.79l3.24,2.13l3.86,5.49l-3.1,4l-3.49-2.7l-12.14-0.12l-5.51,6.07l-4.84-3.6l-5.99,4.94l-7.24-5.68l-5.12-3.62l-10.6,6.08l-7.11-10.16l16.25-10.2l-2.95-4.62l-4.87,1.18l-6.07-4.73l6.74-6.05l0.17-9.5l-10.78-9.09l0.24-8.37l5.13-0.08l0.87-4.52l6.16,2.51l4.25-2.83l8.26,4.11l0.27-3.99L276.37,471.41z","Languedoc-Roussillon","#A3A6B3","Blahblah"},
    		{"M432.79,192.93l-8.97-9.44l2.75-2.86l-0.21-9.17l-10.34-1.69l0.72-6.42l-14.97-12.48l-5.6-2.06l-3.31-9.01l6.2,0.35l2.04-13.27l-4.91-2.44l1.56-10.68l7.95-19.88l7.78,2.16l3-2.66l4.96,1.89l9.89-1.6l10.06,7.17l11.54-3.24l4.27,3.57l5.14-0.82l11.33,16.18l6.49-4.08l10.84,6.72l8.63-3.55l6.53,1.06l0.96,6.79l-0.29,0.02l-2.47,7.08l-10.15,1.14l-8.76-5.52l-5.08,8.05l4.57,7.47l6.94-2.39l4.16,3.84l-3.11,6.63l-8.04,9.13l1.6,9.52l3.83,1.88l-6.41,6.86l-1.15,8.54l-9.31,17l-9.9-8.97l-3.17,4.82l-4.8-6.26l-10.65,2.74l-0.34-5.14L432.79,192.93z","Lorraine","#65B361","Blahblah"},
    		{"M145.3,339.97l-5.12-10.62l-6.82-7.61l-7.56-3.59l-2.04-4.78l-9.97-6.96l-1.07-5.05l9.1,3.29l5.53,5.27l5.93-3.17l5.04-7.5l-3.58-5.48l4.62-1.4l-8.3-10.74l5.28-6.92l14.09,0.51l2.08,3.46l7.87-3.96l-3.29-3.45l-0.83-12.54l3.72-4.79l-10.43-8.63l-0.96-6.45l-10.5-9.61l19.5,5.83l5.11-4.62l22.93,0.97l6.44-2.87l8.63,3.56l0.06,10.24l10.22-2.41l9.64,12.85l6.25,1.52l-1.29,9.4l8.2,15.69l-10.13,5.22l-10.92,10.77l7.1,12.68l-12.75,12.02l-8.24,4.51l-4.79,11.95l-6.91,1.84l0.1,6.66l-11.03,5.41l-1.05,4.33l-4.35,3.33l-6.93-6.84l-6.96-1.5l-0.1-6.67l-4.43-3.44L145.3,339.97z","Poitou-Charentes","#D588B5","Blahblah"},
    		{"M219.82,308.08l-7.1-12.68l10.92-10.77l10.13-5.22l10.49,2.29l9.31-1.12l17.31,0.39l4.46,0.8l2.83,8.21l12.43,12.36l-1.37,10.97l-9.25,3.71l4.46,4.97l-2,4.33l4.69,5.81L284.8,337l-0.38,9.7l-9.51,2.53l-1.96,7.94l-4.78,3.62l-1.18,4.93l-4.21,5.99l-18.09,1.13l-10.56-2.01l0.17-10.55l-7.9-8.49l4.68-6.4l0.49-7.06l-4.69,0.28l-9.2-12.02l-10.61-6.47L219.82,308.08z","Limousin","#64A0D3","Blahblah"},
    		{"M275.33,281.76l13.94-5.32l2.2-11.54l21.8-5.58l0.19,4.94l15.01,3.62l7.68-5.47l7.37,12.7l7.9,4.33l-0.1,9.71l-3.45,5.42l-4.19,0.46l-1.31,14.92l-6.36,6.17l4.41,5.66l-1.47,4.92l8.76,16.31l-2,8.5l13.67-1.45l1.66,4.53l4.28-0.59l3.96,8.28l-1.33,6.87l-4.24,0.03l-1.2,5.21l-3.16,0.66l0.24,4.73l-18.33,7.58l-7.98-3.23l-0.26-4.32l-3.11,0.11l-2.1,5.71l-3.96,0.05l-0.46-5.58l-5.9-4.63l-8.88,5.75l-6.1,14.8l-1.03-9.64l-3.41,0.22l-5.51-10.17l-12.53,17.63l-11.79-1.08l-3.3-1.43l1.73-8.79l-5.51-1.98l1.64-9.09l4.21-5.99l1.18-4.93l4.78-3.62l1.96-7.94l9.51-2.53l0.38-9.7l2.32-4.87l-4.69-5.81l2-4.33l-4.46-4.97l9.25-3.71l1.37-10.97l-12.43-12.36L275.33,281.76z","Auvergne","#FE5CE6","Blahblah"},
    		{"M327.25,61.98l-26.82-4.56l2.41-6.26l-13.89,0.61l-7.34-8.19l-10.14-0.57l-6.35-4.65l4.49-27.99l6.36-5.52l14.86-2.5L307.96,0l3.43,15.74l6.98,5.38l13.3-4.25l5.65,16.43l9.49,1.64l3.75,11.31l17.97,1.57l2.44,18.56l-5.76,4.26l-6.39-5.9l-9.93,2.61l-7.6-2.48l-9.94,3.3L327.25,61.98z","Nord-Pas-de-Calais","#F8C434","Blahblah"},
    		{"M473.44,202.73l6.74,3.09l1.11,5.09l4.76,4.7l-0.68,6.63l-5.78,1.06l-4.21,3.61l9.81,1.15l-0.28,4.14l-25.78,21.33l-1.98,8.21l-10.89,6.33l-0.21,0.97l0.78,7.12l-3.58,7.96l-19.82,12.77l-5.89-4.76l-5.62,3.57l-8.24-7.69l4.74-4.27l-1.98-3.72l0.86-9.21l-5.98-7.56l7.23-2.37l-6.91-6.53l13.07-19.23l0.87-5.97l-2.49-4.86l5.56-6.9l-5.34-4.46l6.03-5.49l2.09,2.34l3.84-2.29l-0.52-4.75l8.02-9.82l11.8-3l0.34,5.14l10.65-2.74l4.8,6.26l3.17-4.82L473.44,202.73z","Franche-Comté","#A8CCEF","Blahblah"}
    		};
     
    	// https://www.amcharts.com/svg-maps/
    	private final static String[][] SENEGAL_REGIONS = {
    			{"M37.765,531.05l0.498,0.462l0.396,4.828l0.854,1.479l1.048,2.896l0.647,2.635l0.117,1.731l0.252,0.339l0.951,0.303l0.198,1.3l-0.174,1.208l-0.482,0.444l-1.468,0.342l-0.46,0.506l-0.025,0.293l0.373,0.041l-0.022,0.732l-0.493,2.504l1.133,0.989l-0.003,1.556l-0.704,3.099l0.673,1.922l-1.87,1.126l0,0l-1.386,-2.947l-3.44,-4.147l-5.689,-4.293l-1.219,-0.579l-1.316,-0.423l-0.332,0.277l-5.067,-2.192l-2.771,-0.719l-2.769,-0.034l-2.541,0.625l-1.006,0.643l-0.537,0.866l0.134,0.958l0.578,0.281l0.556,-0.117l0.068,0.57l-0.754,0.65l0.488,0.955l-0.111,0.336l-0.507,-0.118l-0.283,-0.586l-0.334,0.253l0.219,0.142l0.028,0.31l-0.274,0.112l0.63,0.366l0.137,0.141l0.411,0.141l-0.082,0.563l-0.987,0.453l-0.233,0.756l0.397,0.678l-0.384,0.451l-0.325,-0.85l-0.744,-0.531l0.109,-0.576l-0.466,-0.612l-1.069,-0.191l-0.137,-0.506l-0.295,0.398l-0.299,-0.174l-0.42,0.226l0.097,-1.048l-0.837,-0.811l0.384,-0.508l-1.398,-0.93l-0.274,-0.845l-0.658,0.028l-0.055,-0.282l-0.521,-0.112l-0.082,-0.761l-1.124,-1.183l-1.48,-0.282l0.384,-1.183l0.676,0.366l0.229,-0.311l0.736,0.07l0.113,-0.492l1.299,0.05l0.675,-0.275l0.74,-0.93l1.042,0.451l2.775,-0.535l7.204,-2.876l0.384,-0.366l0.247,0.142l0.11,-0.339l1.919,-0.423l0.274,-0.395l7.375,-3.1L37.765,531.05z","Dakar","#5BC4ED","Blahblah" },
    			{"M101.156,561.749l-0.571,-1.517l-4.896,0.453l-2.245,-0.642l-0.039,-0.425l-1.345,-0.921l-0.985,-1.402l0.123,-0.323l-0.641,-0.172l-0.307,-0.748l-0.758,0.179l-0.334,-0.391l0.255,-0.972l-0.678,-0.167l0.108,-1.629l2.549,-3.529l1.178,-0.517l0.562,-1.851l-0.453,-0.148l-0.087,-0.836l0.387,-0.491l0.492,-2.009l-5.154,-4.347l0.549,-1.286l1.885,-1.671l-0.335,-2.032l-1.113,-1.494l-1.591,-1.298l-3.055,-3.92l0.522,-0.628l2.19,-2.004l1.752,-0.868l4.336,-0.918l6.312,-1.922l0.526,-0.213l-0.102,-0.691l3.128,-0.163l2.473,-1.621l2.85,-0.82l5.121,0.242l0.301,0.322l0.576,-0.167l1.446,0.347l0.705,-1.018l0.32,0.27l-0.296,0.895l1.931,0.601l0.415,-0.523l0.712,-0.047l0.623,0.549l-0.021,0.818l4.506,1.212l2.633,1.171l0.746,0.513l-0.305,0.467l0.345,1.501l1.103,-0.371l0.356,0.455l0.926,0.102l4.052,-1.1l0,0l2.456,-0.023l3.048,0.528l2.132,-0.416l1.695,0.13l1.911,-0.918l1.805,-0.453l2.67,0.861l2.022,1.057l0.676,-1.497l0.692,-0.648l3.841,0.165l0.17,-0.539l1.366,-1.081l1.148,-0.332l1.705,0.351l0.087,0.398l-0.343,0.321l6.167,-0.918l0.205,0.542l1.163,1.139l3.894,1.746l1.165,1.525l0.345,1.341l1.294,2.242l1.261,1.023l1.805,-0.166l1.551,-0.873l2.435,-3.345l0.776,-0.437l0.686,0.043l0.573,0.342l0.349,1.181l1.903,2.06l0.785,1.393l0.018,0.821l-0.515,0.91l2.437,1.114l1.623,0.422l-0.403,0.444l5.955,3.67l4.17,-1.512l1.243,-0.148l2.12,0.467l2.973,1.159l0.176,0.649l-0.244,1.761l1.441,0.823l0,0l-0.847,0.873l-2.024,4.314l-0.615,1.64l-0.219,1.562l-4.985,1.1l-4.162,3.498l-0.851,-0.029l0,0l-0.577,-0.831l-0.236,-1.324l-0.996,-0.894l-0.521,1.345l-0.461,-0.035l-2.089,-0.716l0.147,-1.709l-1.586,0.604l-1.477,-1.219l0.244,-1.572l-1.109,-0.103l-1.174,0.804l-1.033,-0.298l-1.137,0.56l-0.379,0.371l-0.135,2.343l-2.738,-1.656l-2.284,-0.796l-2.333,-1.597l-2.09,-1.002l-1.09,0.645l-0.757,3.952l0.605,4.495l-0.189,1.836l0.247,0.926l-1.11,3.352l-1.349,1.504l-3.079,2.237l-1.81,0.802l-2.543,0.542l-3.486,2.019l-4.618,0.01l-1.254,0.341l-2.139,-0.575l-1.909,-0.725l-0.661,-1.019l-0.07,-1.564l-2.863,0.274l-0.562,0.953l-2.53,-0.162l-0.626,0.204l-2.397,-0.343l-2.45,-0.957l-0.55,0.239l-0.134,-0.588l-0.388,-0.161l-0.844,0.316l-1.137,-0.398l0.008,-0.694l-0.307,-0.19l-1.234,0.303l-2.993,-1.542l-0.784,0.719l-3.576,-0.318l-1.371,0.026l-0.78,0.363l-1.898,-0.229l-0.718,-0.582l-1.674,-0.236l-0.647,-0.732l-0.966,-0.263l-0.253,-0.953l-1.42,-0.418l-1.699,0.914l-0.655,-0.431l-1.133,0.601l-0.639,-0.092l-0.724,0.366l-3.229,-0.004l-1.548,0.725l-1.672,-0.574L101.156,561.749z","Diourbel","#E6C199","Blahblah"},
    			{"M87.786,656.963l0.494,0.981l0.411,0.141l0.027,0.392h0.521l0.542,0.617l0.527,0.112l-0.274,0.364l-1.207,-0.364l-1.289,-2.103L87.786,656.963zM89.239,653.823l0.603,0.981l-0.411,0.729l-0.713,0.477L89.239,653.823zM101.156,561.749l2.84,-0.25l1.672,0.574l1.548,-0.725l3.229,0.004l0.724,-0.366l0.639,0.092l1.133,-0.601l0.655,0.431l1.699,-0.914l1.42,0.418l0.253,0.953l0.966,0.263l0.647,0.732l1.674,0.236l0.718,0.582l1.898,0.229l0.78,-0.363l1.371,-0.026l3.576,0.318l0.784,-0.719l2.993,1.542l1.234,-0.303l0.307,0.19l-0.008,0.694l1.137,0.398l0.844,-0.316l0.388,0.161l0.134,0.588l0.55,-0.239l2.45,0.957l2.397,0.343l0.626,-0.204l2.53,0.162l0.562,-0.953l2.863,-0.274l0.07,1.564l0.661,1.019l1.909,0.725l2.139,0.575l1.254,-0.341l4.618,-0.01l3.486,-2.019l2.543,-0.542l1.81,-0.802l3.079,-2.237l1.349,-1.504l1.11,-3.352l-0.247,-0.926l0.189,-1.836l-0.605,-4.495l0.757,-3.952l1.09,-0.645l2.09,1.002l2.333,1.597l2.284,0.796l2.738,1.656l0.135,-2.343l0.379,-0.371l1.137,-0.56l1.033,0.298l1.174,-0.804l1.109,0.103l-0.244,1.572l1.477,1.219l1.586,-0.604l-0.147,1.709l2.089,0.716l0.461,0.035l0.521,-1.345l0.996,0.894l0.236,1.324l0.577,0.831l0,0l-0.067,2.552l0.325,2.455l1.266,1.433l1.04,0.379l-1.906,1.067l-0.431,-0.48l-6.715,5.424l0.095,2.646l-0.763,0.61l-2.875,-0.879l-0.84,0.094l-0.304,0.837l0.745,0.931l-0.649,0.241l0,0l-1.737,-1.141l-2.433,0.066l-0.815,0.382l-0.17,0.798l-0.556,0.765l-0.455,2.516l-0.798,0.951l-1.281,0.552l-2,0.11l-0.91,1.705l-1.458,5.115l-0.57,0.083l-8.556,-0.188l0.045,-6.605l-0.396,-0.67l-1.307,-0.161l-0.671,1.326l-0.583,0.39l-0.578,-0.251l-0.597,-0.923l-0.946,-0.716l-1.315,-0.328l-1.706,1.493l-0.209,1.111l-0.806,0.861l-1.58,0.275l-0.109,1.733l-1.38,1.467l0.161,0.858l-0.498,0.461l-1.748,0.733l-1.109,0.059l-1.03,-0.563l-2.813,-0.504l-1.461,1.035l-2.021,0.669l-2.383,-0.255l-2.347,0.226l-0.97,0.545l-0.797,1.109l-0.517,2.148l-5.006,-0.493l0.129,0.277l-0.792,0.529l0.223,0.951l-1.006,1.354l-0.434,0.221l-1.314,-0.732l-0.415,0.641l-0.395,-0.128l-0.613,0.673l-1.105,0.467l-0.227,0.771l-1.322,0.603l-0.157,0.346l-2.119,-0.27l-0.476,0.432l-0.603,2.141l-0.301,0.192l0.219,0.442l-0.958,0.339l0.864,0.556l-0.112,0.584l-0.269,0.329l-0.417,-0.002l-0.205,-0.535l-0.455,0.086l0.394,1.368l-0.268,1.526l1.442,1.03l-0.506,0.424l-0.645,-0.084l-0.145,0.344l0.476,0.608l0.4,-0.044l-0.143,0.383l-0.948,-0.456l-0.191,0.707l-0.486,-0.234l-0.207,0.981l-0.725,-0.011l0.531,0.712l0.902,-0.247l2.023,0.125l1.718,-0.565l2.958,0.212l1.668,1.298l2.152,0.797l3.143,2.66l0.424,2.683l-0.096,2.612l-0.519,0.822l-2.755,1.785l-0.305,0.999l-0.779,0.838l-0.232,1.211l0.121,0.356l1.043,0.692l0.171,-0.22l2.674,-0.225l1.575,0.481l-0.323,1.577l1.468,0.129l-0.066,1.562l0.704,1.019l0.529,5.412l-0.534,0.35l-0.762,2.002l-0.009,1.001l-0.396,0.21l-1.125,2.019l-1.84,-0.12l-0.462,0.224l0.868,0.973l-0.663,3.465l1.973,1.106l0.441,0.901l4.295,3.814l0.555,-0.552l0.49,-0.012l0.227,0.302l0.489,5.375l0.423,1.658l0.405,0.987l1.341,1.282l-0.108,0.908l1.295,0.161l-0.258,1.301l-1.413,0.706l0.102,0.678l1.119,0.649l-0.285,0.833l-0.802,0.685l0,0l-34.325,-0.067l-0.8,0.229l-4.728,-0.235l-0.091,-0.737l-0.425,-0.168l-0.91,0.536l-0.762,-1.555l-1.691,-1.316l0.174,-0.617l-0.92,-1.152l-1.943,-0.702l-1.801,-2.229l-0.533,-1.262l-0.33,-0.018v-2.804l0.502,-1.543l-1.569,-2.552l-0.615,-0.229l-2.569,-2.66l-0.218,0.253l-0.932,-0.141l-0.795,-1.458l-1.551,-0.82l-2.824,-0.737l-0.45,-0.665l-0.329,1.044l-0.329,0.141l-0.411,-6.201l0.384,-2.722l0.274,1.6l-0.247,2.554l0.192,1.739l0.322,0.337l-0.151,-9.663l-0.845,-0.227l-0.204,-0.662l-0.959,-11.684l0,0l0.931,-1.238l1.15,-0.06l-0.09,-2.131l-1.389,-1.517l0.094,-0.608l-2.238,-1.448l-0.267,-0.388l0.05,-0.607l0.657,-0.972l0.499,-0.145l0.871,0.331l1.16,-0.423l0.553,0.107l0.013,-0.59l-0.98,-1.421l0.595,-0.832l0.802,-0.249l0.792,-1.054l0.708,-0.092l1.003,-1.167l0.004,-1.377l-1.46,-0.77l-0.622,-0.878l0.301,-0.801l-0.372,-1.316l1.236,-0.518l0.921,-0.867l-0.577,0.014l-0.482,-0.691l2.542,-3.719l0.173,-0.943l-0.326,-4.112l0.507,-4.238l0.529,-1.072l0.213,-1.585l0.659,-0.775l4.101,0.24l1.414,-0.302l1.744,-1.875l2.222,-0.907l4.318,-3.648l1.495,-2.658l0.917,-3.637l-0.046,-0.735l0.945,-1.821L101.156,561.749z","Fatick","#E66166","Blahblah"},
    			{"M436.241,758.746L436.366,758.488L433.834,757.064L433.188,756.2L433.196,755.045L433.823,754.397L436.054,753.229L437.688,752.589L439.615,752.334L438.094,750.467L436.935,746.009L437.267,745.375L436.9,744.632L437.797,743.222L438.415,742.973L437.432,742.186L437.177,741.608L438.346,741.049L438.43,740.762L437.791,739.771L435.879,739.787L433.278,738.906L433.076,738.022L433.883,736.764L431.354,735.473L431.229,734.772L431.606,733.561L430.287,732.575L431.249,732.466L432.229,732.897L432.981,732.571L434.097,731.336L433.8,730.729L433.84,729.697L432.748,729.004L432.108,727.84L431.918,726.786L430.497,725.452L430.216,725.423L429.84,726.107L429.542,726.131L429.045,724.536L427.873,723.509L427.33,721.956L425.228,721.618L424.793,721.213L424.962,720.635L425.191,720.889L425.65,720.814L426.527,719.958L427.207,719.877L428.092,719.13L427.776,718.63L428.005,718.338L427.79,717.258L429.13,717.295L430.043,716.386L429.993,716.955L430.545,717.033L430.838,716.87L430.936,716.11L431.684,715.827L432.516,716.862L431.973,717.289L433.055,717.34L433.229,716.888L433.608,716.814L434.358,717.342L435.257,716.759L438.466,718.308L440.044,719.521L440.811,719.194L441.987,717.208L442.955,716.559L443.213,715.843L444.01,716.644L444.859,716.5L445.967,716.775L446.233,716.343L446.217,715.508L446.927,715.637L448.11,715.371L449.085,714.91L449.357,714.264L450.032,714.926L451.2,714.727L451.774,715.413L453.147,714.205L454.095,715.012L455.408,714.35L454.856,715.776L455.058,716.039L455.936,716.05L456.503,716.729L456.879,716.669L456.733,717.209L457.151,718.149L457.736,717.833L458.244,717.088L458.713,717.736L460.365,718.662L460.596,719.947L461.305,719.601L462.102,720.16L461.804,720.906L462.818,721.155L463.392,721.667L464.531,720.812L465.366,722.559L466.896,722.828L467.163,722.242L466.296,721.443L466.393,720.726L466.881,720.562L467.728,720.874L467.053,719.956L467.018,719.496L468.411,719.337L468.226,718.695L468.468,718.582L469.374,718.885L470.728,718.759L470.681,717.065L471.63,716.801L472.012,717.173L472.318,716.999L471.919,715.934L472.255,714.823L473.066,715.231L473.149,714.602L473.652,714.465L474.748,714.826L475.174,715.277L475.658,715.14L476.436,714.623L476.45,714.273L476.096,713.999L476.138,713.305L477.873,713.126L478.315,712.078L479.435,711.748L479.293,710.538L480.7,709.612L480.578,708.637L481.295,708.76L480.93,708.483L481.152,708.119L480.43,707.66L480.876,706.914L480.629,706.59L480.856,706.296L480.581,706.232L480.5,704.901L481.45,705.034L482.168,704.821L482.558,704.167L483.128,704.573L483.933,704.189L484.423,703.616L484.422,703.056L484.938,702.7L487.457,703.189L487.326,702.908L488.413,702.57L488.607,701.298L489.453,701.559L489.762,702.432L490.143,702.107L490.983,702.086L491.627,703.194L492.312,703.746L493.033,703.97L494.08,703.418L494.591,703.843L495.372,703.375L495.724,703.83L496.082,703.803L496.271,703.138L496.718,702.781L497.641,702.549L498.663,702.836L499.005,702.6L499.004,702.024L499.754,701.521L500.422,698.96L501.779,698.273L501.664,697.261L502.055,697.257L502.158,696.799L503.883,695.459L505.426,695.05L506.133,693.747L507.364,693.969L509.977,692.921L512.635,694.615L513.679,696.241L514.118,696.377L515.061,696.07L515.204,695.785L515.197,694.398L516.395,692.927L516.758,690.427L517.857,690.461L518.354,690.761L520.261,690.604L521.907,691.046L522.393,690.585L523.347,690.506L524.34,689.945L525.292,688.337L525.178,687.969L524.422,687.316L521.46,682.663L521.513,681.364L521.261,680.836L521.834,679.823L522.414,679.623L522.721,678.026L522.526,676.515L523.334,675.988L524.808,676.824L525.168,676.685L527.373,677.727L527.723,678.168L531.182,680.144L532.831,680.693L533.196,681.887L533.877,682.663L534.968,682.949L536.757,684.615L540.013,685.19L541.836,686.412L544.44,685.043L544.069,686.995L544.467,687.948L544.194,689.029L543.779,689.385L544.233,690.867L545.594,691.102L546.76,689.631L547.762,689.626L548.155,689.182L548.597,689.148L550.823,687.024L551.638,685.584L552.348,685.454L553.286,685.745L554.098,685.434L554.482,684.973L556.607,684.6L557.396,683.995L558.344,683.729L558.344,683.729L559.935,684.019L560.842,685.661L562.616,686.896L563.392,688.757L563.863,688.786L564.337,689.233L564.44,690.157L563.972,691.117L566.749,691.104L567.169,690.836L567.373,689.347L567.854,688.619L568.614,688.197L569.933,688.197L570.173,687.932L570.841,685.307L572.429,683.264L572.115,682.237L572.289,681.168L573.227,680.503L574.094,680.321L576.739,680.688L577.708,681.804L577.762,683.056L580.349,683.08L582.37,682.426L584.339,682.671L584.438,684.183L583.254,685.598L585.263,685.94L586.732,685.322L587.266,685.415L587.542,685.927L587.488,688.577L588.292,689.978L588.037,691.114L589.378,691.628L590.277,692.897L592.197,693.143L592.859,694.008L592.64,694.797L593.449,695.735L594.606,696.347L594.585,696.965L592.797,699.299L592.655,701.12L592.892,701.894L593.342,702.299L596.08,702.423L596.647,702.63L596.887,703.036L596.922,704.246L596.571,705.082L595.056,706.457L595.261,707.426L596.642,707.853L597.23,710.232L598.643,710.981L599.184,712.322L602.441,712.471L604.217,714.204L604.154,715.078L603.203,716.239L603.205,716.672L603.869,717.098L604.785,718.383L605.557,718.675L605.596,719.491L605.178,720.337L606.635,720.743L607.068,721.3L607.03,722.106L605.866,722.588L605.148,722.511L605.201,723.156L606.048,724.093L605.85,724.858L606.212,724.808L606.79,724.984L607.495,725.696L607.932,725.54L608.185,724.708L607.879,723.187L608.162,722.875L610.01,723.153L610.948,724.297L611.064,726.393L611.995,728.346L611.575,729.175L610.581,729.519L607.625,730.226L607.347,730.109L607.216,729.507L606.788,729.801L606.662,731.112L607.905,731.491L607.92,732.279L606.642,733.503L606.347,734.664L607.238,736.565L606.904,737.154L605.761,737.861L606.543,738.609L606.456,739.764L607.334,739.675L607.808,739.234L608.479,739.427L607.897,741.155L608.581,742.442L608.404,744.565L607.732,745.123L606.949,745.175L607.869,745.639L608.901,747.166L608.318,748.197L608.759,748.519L609.741,748.499L610.282,749.638L608.002,750.065L604.283,749.984L604.329,752.931L603.493,753.286L602.943,752.522L602.96,754.491L602.095,754.975L601.911,755.366L602.316,756.225L603.289,756.389L604.398,756.144L605.355,757.515L605.482,758.776L605.986,759.09L605.953,760.108L605.489,760.766L604.491,761.19L604.434,761.765L604.55,762.167L606.039,763.093L606.355,763.705L605.806,765.362L604.691,766.34L602.604,766.184L602.08,767.863L602.348,768.173L602.875,767.592L603.639,767.635L604.053,768.207L604.077,769.828L605.019,770.117L605.253,770.01L605.23,769.011L605.563,768.39L606.116,768.268L606.637,768.725L607.921,768.724L607.99,769.307L607.542,770.135L608.528,770.322L608.779,770.746L608.454,773.359L609.059,774.089L608.808,773.107L609.585,771.538L610.171,771.523L610.749,771.881L611.051,772.683L611.19,774.113L610.824,773.886L610.479,774.547L611.297,775.107L611.443,776.214L610.631,776.31L610.144,777.359L609.162,777.405L609.334,778.353L610.003,779.173L609.667,780.8L608.562,781.128L608.158,780.874L606.538,780.889L604.483,779.007L603.045,778.583L601.974,778.724L600.996,778.375L599.994,778.41L599.073,777.724L596.687,777.871L587.672,778.8L586.587,779.584L585.733,779.476L584.976,779.881L583.625,779.204L580.934,779.824L579.858,780.196L577.091,782.517L575.439,782.473L574.068,783.648L571.793,783.655L570.201,784.162L569.404,783.205L567.479,783.063L567.355,782.61L566.762,782.162L565.875,782.789L565.621,782.493L563.883,782.326L562.234,783.055L562.078,782.588L560.778,781.505L560.626,780.862L559.57,780.761L557.965,780.024L557.163,777.792L550.905,781.693L549.839,782.067L549.227,781.826L546.125,782.438L545.645,782.261L545.279,781.633L544.129,781.153L543.161,779.957L541.811,779.904L541.074,779.341L540.418,779.887L539.604,779.835L536.034,781.11L535.598,781.421L534.938,782.959L534.133,783.933L532.426,784.342L532.023,785.06L529.854,786.117L529.555,786.742L528.453,786.674L526.56,787.216L525.044,786.975L524.428,787.599L523.567,787.854L522.732,787.454L520.088,788.505L519.512,789.154L518.217,789.096L511.991,792L511.094,789.15L510.271,788.607L509.211,786.213L508.616,785.689L508.571,785.18L507.207,784.194L505.967,784.347L504.752,784.084L502.848,782.74L498.551,781.922L497.567,782.267L496.55,782.223L493.848,785.016L491.516,786.01L490.51,784.323L489.828,783.934L489.573,782.819L489.804,781.943L488.249,782.368L487.059,781.45L486.712,780.149L485.548,779.305L483.709,778.965L481.432,779.474L479.338,778.883L472.32,779.423L471.771,779.245L472.708,777.032L472.916,776.252L472.709,776.037L471.641,775.345L471.015,775.688L469.078,774.409L468.135,774.947L466.931,775.103L466.146,774.672L465.597,773.953L463.975,773.374L463.847,772.982L464.968,771.584L464.772,771.119L463.883,771.104L460.681,769.697L460.013,768.604L460.413,767.764L459.288,767.371L458.339,767.806L455.829,768.234L454.089,769.088L453.709,769.869L454.327,770.451L454.236,771.333L454.53,771.929L453.871,775.128L452.177,775.228L451.43,776.054L449.284,775.554L448.505,774.683L445.477,774.372L444.758,774.766L442.614,774.351L441.946,773.521L442.191,771.059L441.752,769.309L442.124,768.728L443.141,768.067L443.212,766.423L444.266,765.037L444.003,763.533L444.141,762.584L443.439,761.479L443.734,760.337L442.243,759.38L442.62,758.559L442.425,758.352L441.181,758.314L440.907,759.077L439.784,759.437L439.374,760.071L439.111,759.757L438.47,759.897L437.896,759.096L436.971,759.12L436.981,758.533z","Kédougou","#97BF0D","Blahblah"},
    			{"M209.269,541.355L210.94,541.137L213.924,543.528L216.257,547.252L219.085,550.507L221.321,552.711L226.133,555.608L248.748,559.858L249.405,557.314L259.943,550.51L263.974,555.259L265.855,555.262L265.855,555.262L268.744,558.479L270.394,558.984L276.059,562.574L278.441,562.576L279.395,561.592L281.102,561.322L285.524,561.387L285.74,562.577L286.126,562.739L286.945,562.644L287.424,562.104L288.297,562.147L290.662,563.005L290.696,563.439L290.696,563.439L290.115,564.711L287.991,564.873L287.417,574.281L287.665,577.371L287.558,577.886L287.211,578.072L286.512,591.126L288.114,592.979L290.87,595.355L290.941,595.761L292.014,607.257L291.277,611.87L291.95,612.095L292.324,612.591L291.267,614.056L292.176,620.9L291.537,621.625L289.378,622.908L291.886,623.117L290.159,627.814L283.081,632.555L281.418,633.33L278.632,640.021L270.522,640.831L268.648,643.296L267.646,644.15L267.688,644.551L267.232,645.003L267.232,645.003L267.23,644.997L267.23,644.997L263.636,643.076L261.018,642.221L256.308,641.69L254.234,642.23L253.332,642.166L244.877,639.062L239.006,641.108L229.772,646.854L227.39,646.872L225.939,645.369L224.171,644.12L222.464,643.542L219.792,643.197L217.575,643.475L214.883,644.448L212.935,645.405L211.801,646.339L211.739,646.813L211.128,647.093L211.128,647.093L211.127,646.436L209.69,646.307L208.585,643.978L208.424,643.451L209.179,643.441L209.164,641.896L207.743,641.916L207.279,641.584L203.207,641.597L203.102,641.009L202.589,640.802L202.067,641.145L201.971,641.887L200.295,641.871L198.297,640.916L198.218,639.96L197.23,640.155L193.755,638.623L192.989,638.812L192.583,639.312L191.364,641.099L191.133,641.975L189.868,643.181L189.562,643.83L188.594,644.293L187.983,644.21L186.24,642.652L185.257,641.292L185.49,641.196L185.34,640.606L185.057,640.41L184.555,640.6L183.173,639.374L181.94,638.82L181.477,638.128L181.559,637.584L182.418,636.518L180.947,635.145L182.536,633.739L183.699,631.379L183.584,630.455L181.747,628.212L181.043,626.053L180.598,625.616L179.729,625.417L178.195,625.982L176.429,624.96L175.353,623.829L173.379,623.306L173.325,622.485L173.9,620.592L173.484,619.577L173.775,618.912L173.386,618.347L173.219,616.365L172.228,616.357L172.089,616.11L170.966,615.851L167.769,613.516L167.753,612.887L166.597,612.721L166.039,610.644L167.082,609.702L166.71,608.501L167.028,603.859L170.044,597.054L172.761,596.996L175,596.403L175.823,592.541L176.122,592.132L182.579,592.411L182.972,590.456L183.217,585.912L182.11,578.613L182.948,573.476L183.798,573.23L184.487,571.622L184.487,571.622L185.136,571.381L184.391,570.45L184.695,569.613L185.535,569.52L188.41,570.398L189.173,569.788L189.078,567.142L195.792,561.718L196.223,562.198L198.129,561.131L197.09,560.752L195.824,559.319L195.5,556.864L195.566,554.313L195.566,554.313L196.417,554.342L200.579,550.844L205.564,549.744L205.783,548.183L206.398,546.543L208.422,542.229z","Kédougou","#64A1D3","Blahblah"},
    			{"M184.487,571.622L183.798,573.23L182.948,573.476L182.11,578.613L183.217,585.912L182.972,590.456L182.579,592.411L176.122,592.132L175.823,592.541L175,596.403L172.761,596.996L170.044,597.054L167.028,603.859L166.71,608.501L167.082,609.702L166.039,610.644L166.597,612.721L167.753,612.887L167.769,613.516L170.966,615.851L172.089,616.11L172.228,616.357L173.219,616.365L173.386,618.347L173.775,618.912L173.484,619.577L173.9,620.592L173.325,622.485L173.379,623.306L175.353,623.829L176.429,624.96L178.195,625.982L179.729,625.417L180.598,625.616L181.043,626.053L181.747,628.212L183.584,630.455L183.699,631.379L182.536,633.739L180.947,635.145L182.418,636.518L181.559,637.584L181.477,638.128L181.94,638.82L183.173,639.374L184.555,640.6L185.057,640.41L185.34,640.606L185.49,641.196L185.257,641.292L186.24,642.652L187.983,644.21L188.594,644.293L189.562,643.83L189.868,643.181L191.133,641.975L191.364,641.099L192.583,639.312L192.989,638.812L193.755,638.623L197.23,640.155L198.218,639.96L198.297,640.916L200.295,641.871L201.971,641.887L202.067,641.145L202.589,640.802L203.102,641.009L203.207,641.597L207.279,641.584L207.743,641.916L209.164,641.896L209.179,643.441L208.424,643.451L208.585,643.978L209.69,646.307L211.127,646.436L211.128,647.093L211.128,647.093L211.13,647.828L210.086,647.684L208.878,649.028L206.818,652.568L205.434,656.935L204.316,662.887L138.351,662.809L138.351,662.809L139.153,662.124L139.438,661.291L138.32,660.642L138.218,659.964L139.631,659.258L139.889,657.957L138.594,657.796L138.702,656.888L137.361,655.605L136.957,654.618L136.533,652.96L136.044,647.585L135.817,647.283L135.327,647.295L134.772,647.847L130.478,644.032L130.037,643.131L128.064,642.024L128.727,638.56L127.859,637.587L128.322,637.363L130.162,637.483L131.287,635.465L131.683,635.255L131.692,634.254L132.454,632.252L132.988,631.902L132.458,626.49L131.754,625.472L131.821,623.91L130.353,623.781L130.676,622.204L129.101,621.723L126.426,621.947L126.255,622.167L125.212,621.475L125.092,621.118L125.324,619.907L126.103,619.069L126.407,618.07L129.163,616.285L129.681,615.463L129.777,612.851L129.354,610.168L126.211,607.508L124.059,606.711L122.391,605.413L119.433,605.201L117.715,605.767L115.692,605.642L114.79,605.889L114.259,605.177L114.983,605.188L115.19,604.206L115.677,604.44L115.868,603.733L116.816,604.189L116.959,603.807L116.559,603.851L116.083,603.242L116.229,602.898L116.873,602.982L117.379,602.559L115.938,601.528L116.205,600.002L115.812,598.634L116.267,598.548L116.471,599.083L116.888,599.085L117.156,598.756L117.268,598.172L116.404,597.616L117.362,597.277L117.143,596.835L117.444,596.643L118.046,594.502L118.522,594.07L120.642,594.34L120.799,593.994L122.121,593.392L122.348,592.621L123.453,592.154L124.065,591.481L124.46,591.609L124.875,590.969L126.189,591.701L126.623,591.48L127.629,590.127L127.407,589.176L128.198,588.646L128.069,588.369L133.076,588.862L133.593,586.714L134.39,585.604L135.36,585.06L137.707,584.834L140.09,585.089L142.11,584.42L143.571,583.385L146.385,583.889L147.415,584.451L148.524,584.393L150.271,583.659L150.77,583.198L150.608,582.34L151.988,580.873L152.098,579.14L153.678,578.864L154.483,578.003L154.693,576.892L156.398,575.398L157.714,575.727L158.66,576.442L159.256,577.365L159.834,577.616L160.417,577.227L161.089,575.9L162.396,576.062L162.792,576.731L162.748,583.337L171.303,583.524L171.874,583.441L173.332,578.326L174.242,576.621L176.242,576.511L177.522,575.959L178.321,575.008L178.775,572.492L179.332,571.728L179.502,570.93L180.317,570.548L182.75,570.481z","Kaolack","#E09C63","Blahblah"},
    			{"M264.066,677.539L265.659,677.48L267.718,679.302L270.44,680.502L272.275,680.634L274.752,680.357L275.896,682.661L277.734,684.717L280.076,686.107L284.685,688.091L285.86,688.09L286.177,687.853L288.799,688.263L291.619,687.378L294.365,685.876L296.745,689.419L298.124,690.796L299.734,691.553L304.313,692.129L306.549,695.139L308.189,696.38L310.403,697.827L314.398,699.283L315.376,699.5L319.386,698.486L322.729,698.526L323.785,698.258L324.558,699.615L326.572,700.735L328.953,700.517L331.14,699.605L334.48,700.61L335.97,699.936L336.682,699.985L337.982,698.453L338.438,697.416L338.452,695.515L337.739,694.665L338.515,694.104L339.579,693.746L340.167,694.408L341.615,694.12L342.397,693.04L343.342,693L343.272,693.682L345.805,694.027L345.838,693.339L349.313,693.078L354.559,690.039L360.136,690.615L362.965,690.153L365.662,688.818L367.071,687.502L369.486,683.665L370.233,680.75L370.28,678.253L369.926,677.686L367.878,676.144L365.911,672.445L363.61,670.923L363.61,670.923L364.187,670.85L366.309,671.583L366.251,669.672L367.345,667.288L369.452,667.74L370.666,667.493L370.923,668.218L369.889,669.687L369.796,671.531L368.789,673.852L369.213,675.212L370.095,675.355L372.379,673.403L375.523,674.184L377.846,675.454L377.281,676.664L375.431,677.612L373.876,678.798L373.896,679.763L374.605,680.525L374.524,682.059L373.79,683.232L372.283,684.591L372.799,684.955L375.124,685.014L380.145,683.889L381.811,683.805L382.156,684.068L382.085,685.047L380.942,685.822L379.151,688.084L379.576,688.92L382.112,688.059L382.969,687.909L383.15,688.158L381.782,691.519L380.575,692.727L380.688,693.282L381.814,694.57L384.564,694.148L385.584,695.024L384.868,696.838L385.011,697.604L385.787,698.038L386.584,698.035L387.236,697.892L387.702,697.421L388.104,697.765L388.146,698.329L388.585,698.358L388.458,698.653L388.931,699.415L388.46,699.213L388.307,700.05L388.691,699.892L389.208,700.156L389.206,700.685L389.666,700.97L389.249,701.135L389.262,702.223L389.018,701.605L388.496,701.639L387.9,702.134L388.839,702.317L388.983,702.596L388.604,703.058L388.886,703.286L388.611,703.947L388.074,703.959L387.832,704.289L388.2,704.45L387.65,704.974L387.848,705.339L388.477,705.239L388.491,705.542L388.776,705.58L388.687,706.03L388.325,705.76L388.172,705.91L388.32,706.368L388.962,706.504L389.172,706.914L388.781,707.338L388.165,706.855L387.938,707.632L388.563,707.661L388.666,708.014L387.801,708.284L387.715,708.951L387.987,709.102L388.267,708.852L388.859,709.268L389.064,709.032L390.035,709.422L389.901,709.733L389.538,709.608L389.43,709.91L389.755,710.239L389.451,710.284L389.62,710.586L389.369,710.844L389.735,711.243L390.061,711.146L390.384,711.83L390.388,711.412L390.928,711.443L391.114,711.918L390.766,712.298L391.266,712.896L390.98,713.108L391.036,713.852L391.786,712.894L392.533,713.036L392.444,713.357L391.903,713.152L391.887,713.565L392.28,713.787L392.045,714.309L391.605,714.521L391.622,715.482L391.93,715.856L392.398,716.028L392.458,715.652L393.139,715.928L393.326,715.66L393.155,715.29L392.982,714.92L393.66,714.725L394.606,715.615L393.623,716.479L393.882,716.631L393.711,717.055L393.973,717.16L394.594,716.657L395.299,717.468L395.298,717.712L395.107,717.817L394.792,718.174L395.72,718.514L395.796,718.891L396.198,718.419L396.266,719.016L396.52,718.705L397.407,718.556L397.502,719.665L396.384,720.044L396.862,720.391L396.287,720.508L396.023,721.767L396.385,721.62L396.586,722.084L397.811,721.022L398.93,721.998L398.61,723.023L397.652,723.58L398.514,724.545L398.431,725.315L398.924,725.503L399.479,725.135L399.482,725.806L398.179,726.093L397.403,727.089L397.979,728.022L399.042,728.077L398.844,727.615L399.186,727.557L399.728,728.307L399.048,729.403L398.245,729.293L398.796,730.24L398.876,731.492L399.857,731.665L401.18,732.87L402.136,732.718L402.724,732.922L402.233,734.284L402.74,734.757L401.751,734.785L401.615,735.163L403.643,736.78L403.929,737.6L403.363,738.049L402.641,737.487L401.82,737.293L401.235,737.288L401.107,737.647L402.147,738.091L402.346,739.138L400.989,740.058L401.349,742.018L402.658,742.121L402.897,742.688L401.884,744.483L402.153,744.712L402.848,744.125L403.22,745.565L402.805,746.307L403.245,747.577L402.548,747.448L402.138,748.073L402.377,748.634L402.9,748.837L403.266,749.836L402.813,750.473L402.514,750.502L402.3,750.131L401.854,750.239L402.592,750.714L402.896,751.841L402.467,751.936L402.126,752.99L402.917,752.751L403.848,751.702L404.662,751.891L405.005,752.252L405.527,751.792L405.32,752.551L404.56,753.013L404.785,753.157L405.085,752.802L405.507,752.793L404.992,753.49L405.55,753.398L406.06,753.784L405.907,754.73L406.685,755.28L408.086,754.522L409.165,754.915L409.809,754.843L410.065,754.072L410.736,753.812L410.894,753.284L411.725,752.996L413.602,753.488L413.602,753.488L412.846,756.661L399.002,755.108L349.821,755.188L327.101,754.721L326.793,755.104L317.521,754.972L317.519,754.58L303.685,754.492L277.329,754.813L239.109,754.091L239.109,754.091L237.325,752.94L236.724,750.555L235.708,748.71L237.563,745.489L237.494,744.168L238.47,743.524L238.623,742.333L239.653,741.12L239.602,734.334L239.986,732.725L235.727,728.158L234.619,725.605L234.541,724.9L235.618,722.895L235.262,720.958L232.616,719.168L231.966,719.125L228.814,717.422L226.766,714.311L226.59,709L226.219,708.411L226.017,707.119L224.374,706.965L224.127,703.831L222.062,703.143L219.016,703.231L219.039,702.385L218.243,701.94L216.476,700.098L216.11,695.461L217.68,692.698L217.601,686.465L217.945,686.195L217.945,686.195L221.87,685.479L223.48,684.496L228.56,680.296L229.753,677.531L231.699,669.182L232.732,668.711L236.921,664.853L237.21,663.84L242.232,662.106L243.593,665.439L244.409,666.593L247.008,669.457L249.799,671.929L253.594,674.192L258.259,676.371L261.028,677.329z","Kolda","#CCB32F","Blahblah"},
    			{"M291.04,425.25l-0.472,0.03l-1.039,1.228l-3.966,-0.593l0.367,-3.041l-0.868,-1.8l-2.84,3.105l-5.811,3.066l-1.832,1.949l-2.702,1.502l-2.428,0.891l-2.632,-4.43l-2.317,-1.374l-7.005,-7.293l-3.58,2.395l-12.749,1.08l-2.946,2.117l-1.157,-0.116l-5.229,-1.629L231,421.305l-1.309,-3.501l-0.659,-0.243l-1.88,-1.796l-2.91,-1.187l-1.195,-1.007l-3.429,1.601l-3.139,0.253l-2.415,-2.542l-1.227,2.08l-0.112,1.883l0.692,1.811l-2.382,0.041l-2.633,1.396l1.656,4.499l-0.288,3.137l-1.165,-0.568l-1.998,-0.419l-5.195,2.088l-1.909,0.139l-2.335,-0.455l1.092,-2.053l0.266,-1.147l-1.47,-2.167l-7.488,-3.857l-11.076,-10.155l-8.732,-9.661l-0.811,0.209l-3.803,2.683l-4.741,4.237l-0.812,1.481l-3.376,1.347l-8.093,4.048l-2.021,0.607l-3.944,2.222l-2.242,0.466l-1.397,0.682l-0.518,0.732l0.175,0.335l-2.366,3.576l-5.186,4.153l-3.232,1.896l-0.867,1.271l-0.397,1.521l-0.547,0.59l-0.243,-0.33l-1.587,1.755l-2.687,1.011l-0.875,1.612l-0.769,0.104l-0.56,-0.917l-0.633,0.061l-0.746,0.562l-1.995,0.229l-3.62,-0.018l-3.434,-0.561l-1.587,0.155l-2.832,1.03l-3.159,2.284l-1.235,0.204l-0.237,1.013l-0.249,-0.06l0,0l-0.768,2.279l0.274,0.535l-0.521,0.739l-0.027,0.651l-4.195,8.66l-4.688,8.177L80.81,473.52l0,0l2.822,1.716l0.66,0.988l0.047,1.089l-2.967,4.292l-1.83,4.987l-0.582,2.922l0.306,0.398l2.608,0.963l1.248,1.73l1.793,0.983l1.392,1.67l3.31,2.155l0.392,0.718l-0.021,1.201l1.126,0.424l0.674,1.357l-0.093,3.272l-0.681,1.113l0.369,0.063l1.628,-1.442l0.637,-1.152l2.351,-2.413l3.838,-7.436l1.131,-0.243l0.564,-0.486l0.21,-0.942l-0.382,-0.326l1.401,-2.185l4.985,-5.165l0.569,0.313l2.65,2.883l0.97,0.422l2.618,0.493l2.417,-0.416l0.832,0.304l1.488,2.45l-0.08,0.803l-1.024,1.371l1.241,1.668l0.933,0.673l0.938,0.253l0.397,-0.34l0.371,-1.73l1.126,-0.396l1.003,0.412l1.237,1.565l0.422,1.816l-0.178,1.838l0.264,1.731l1.197,2.384l0.988,0.961l0.739,1.419l0.112,2.952l3.91,3.175l0.238,4.872l1.583,4.027l0.282,2.956l-0.151,1.401l0,0l2.456,-0.023l3.048,0.528l2.132,-0.416l1.695,0.13l1.911,-0.918l1.805,-0.453l2.67,0.861l2.022,1.057l0.676,-1.497l0.692,-0.648l3.841,0.165l0.17,-0.539l1.366,-1.081l1.148,-0.332l1.705,0.351l0.087,0.398l-0.343,0.321l6.167,-0.918l0.205,0.542l1.163,1.139l3.894,1.746l1.165,1.525l0.345,1.341l1.294,2.242l1.261,1.023l1.805,-0.166l1.551,-0.873l2.435,-3.345l0.776,-0.437l0.686,0.043l0.573,0.342l0.349,1.181l1.903,2.06l0.785,1.393l0.018,0.821l-0.515,0.91l2.437,1.114l1.623,0.422l-0.403,0.444l5.955,3.67l4.17,-1.512l1.243,-0.148l2.12,0.467l2.973,1.159l0.176,0.649l-0.244,1.761l1.441,0.823l0,0l1.671,-0.219l2.984,2.392l2.333,3.724l2.828,3.255l2.235,2.204l4.812,2.897l22.615,4.25l0.658,-2.544l10.538,-6.805l4.03,4.749l1.881,0.003l0,0l2.664,-3.183l0.577,-1.363l0.705,-4.315l0.584,-1.611l0.732,-0.739l2.672,-1.618l0.421,-7.032l-0.128,-2.402l-0.76,-4.344l-0.301,-6.022l-2.276,-6.696l-0.393,-0.523l-0.781,-6.39l0.677,-0.709l6.648,-1.504l0.467,-0.725l8.11,-0.013l3.841,-0.334l0.281,-0.785l4.617,-5.623l2.025,-0.865l1.883,-6.606l-0.109,-3.739l3.798,-5.485l-4.097,-0.082l-6.708,1.606l-1.107,0.054l-12.567,-6.625l-3.169,-0.884l-1.016,-0.925l-0.274,-1.199l-0.055,-0.808l1.63,0.019l2.344,-2.492l1.104,-1.75l-0.909,-2.443l0.054,-3.193l-1.567,-0.48l2.026,-6.354l2.133,-5.281l0.526,-0.694l1.67,-1.087l2.566,-1.004l-0.556,-4.588l13.229,-8.91L291.04,425.25z","Louga","#EBFB94","Blahblah"},
    			{"M400.844,405.389L399.156,405.896L398.204,406.646L397.699,407.457L397.876,408.986L399.167,410.249L400.576,410.073L401.486,408.405L402.202,407.636L403.008,407.376L403.258,407.511L403.5,408.752L404.527,409.946L410.256,412.206L411.396,413.041L411.151,417.115L412.439,418.686L412.244,420.4L412.777,422.328L413.687,423.901L414.658,424.888L415.997,425.666L417.002,425.757L417.507,426.132L417.456,427.049L416.4,428.047L415.918,428.9L415.938,429.571L416.471,430.195L418.146,431.032L418.812,431.735L418.964,432.804L418.609,435.046L419.04,436.98L422.165,439.803L422.22,440.265L421.864,440.553L420.763,439.918L420.014,440.103L419.563,441.061L419.589,442.285L427.88,449.541L427.517,450.654L426.771,451.688L425.804,451.844L424.141,451.327L423.496,451.985L423.554,453.625L424.84,455.552L425.881,458.012L426.448,458.338L427.252,458.301L428.584,456.855L429.998,456.678L434.294,458.922L439.781,461.154L439.734,461.512L439.087,462.047L439.786,463.017L439.893,464.208L438.584,466.796L438.062,468.854L438.188,469.635L438.542,469.911L440.729,470.584L441.921,471.319L443.704,471.702L446.426,471.418L448.382,469.944L450.181,469.896L451.488,469.3L451.933,469.386L452.33,471.91L452.061,474.023L452.228,474.886L453.144,475.34L454.979,474.905L455.606,475.028L455.778,475.336L455.434,476.23L453.631,477.804L453.495,482.918L453.987,484.023L455.941,485.738L457.434,486.077L459.308,486.052L462.841,487.946L463.508,488.573L464.676,490.975L464.654,492.607L463.27,494.441L461.806,494.02L460.635,492.985L459.096,492.941L458.412,493.705L458.684,495.113L459.55,495.961L461.911,497.314L462.479,498.183L462.742,499.329L463.295,499.961L464.351,499.936L465.951,498.546L467.381,498.392L468.513,498.963L469.488,500.723L468.748,503.432L469.144,504.934L470.232,505.633L472.557,506.379L475.446,509.153L478.131,510.235L478.587,511.456L478.85,511.699L479.215,511.555L479.215,511.555L482.861,516.586L483.295,516.533L483.785,517.889L485.442,520.222L485.779,521.922L486.494,522.358L485.977,523.123L486.269,523.826L486.978,525.104L487.505,524.829L487.724,525.747L488.227,525.977L487.382,527.392L487.791,527.841L487.529,528.188L487.79,529.137L488.923,530.999L482.709,550.269L476.06,559.472L468.616,562.826L453.28,565.073L448.511,563.621L444.82,562.84L424.346,559.691L415.576,566.483L413.792,567.371L412.195,569.104L398.766,579.521L397.794,580.022L387.549,580.384L371.086,580.003L361.381,564.549L353.706,563.157L342.114,564.337L338.098,569.131L330.483,566.565L327.862,566.215L328.107,565.771L322.258,562.363L313.557,560.729L311.188,558.429L309.544,558.803L307.663,559.882L301.591,562.431L300.253,563.149L299.267,564.644L295.585,564.853L293.277,563.431L290.696,563.439L290.696,563.439L290.662,563.005L288.297,562.147L287.424,562.104L286.945,562.644L286.126,562.739L285.74,562.577L285.524,561.387L281.102,561.322L279.395,561.592L278.441,562.576L276.059,562.574L270.394,558.984L268.744,558.479L265.855,555.262L265.855,555.262L268.519,552.079L269.096,550.716L269.801,546.4L270.385,544.789L271.117,544.05L273.79,542.432L274.21,535.399L274.083,532.997L273.323,528.653L273.022,522.631L270.746,515.935L270.353,515.411L269.572,509.021L270.249,508.313L276.897,506.809L277.364,506.084L285.474,506.071L289.315,505.737L289.596,504.952L294.213,499.329L296.238,498.464L298.122,491.857L298.013,488.118L301.811,482.633L297.714,482.551L291.006,484.157L289.899,484.211L277.333,477.586L274.163,476.702L273.147,475.777L272.874,474.578L272.818,473.771L274.448,473.789L276.792,471.297L277.897,469.547L276.988,467.104L277.042,463.91L275.476,463.43L277.501,457.075L279.635,451.794L280.161,451.1L281.832,450.013L284.398,449.009L283.842,444.421L297.07,435.511L297.07,435.511L300.756,440.52L300.367,441.123L300.035,443.308L300.878,447.568L300.494,449.425L301.311,450.056L303.502,450.938L304.888,452.908L305.1,454.234L309.531,454.264L309.857,454.96L310.359,455.152L309.87,457.368L309.423,457.347L309.417,458.698L309.18,458.873L308.573,461.607L306.003,461.611L306.431,469.313L306.005,474.904L310.336,480.177L309.675,481.8L310.063,482.482L314.551,481.418L324.568,481.359L330.13,478.262L331.751,474.252L331.439,473.01L329.857,473.004L329.936,471.616L328.528,470.248L328.705,468.593L332.457,467.901L331.814,464.101L347.288,464.661L349.97,453.044L351.767,440.416L353.969,429.015L356.293,428.11L360.825,423.365L361.882,422.942L362.572,421.536L364.414,419.608L364.659,418.344L365.098,417.72L367.146,416.635L375.254,413.758L377.009,405.918L377.58,404.62L377.58,404.62L379.091,407.103L380.837,408.641L381.465,408.842L383.142,407.379L386.157,407.535L390.986,405.086L392.49,404.735L394.262,404.877L396.88,405.775L397.534,405.566L400.272,403.449L400.954,403.681L401.532,404.765L401.426,405.106z","Matam","#ABDAC3","Blahblah"},
    			{"M202.913,682.848L206.669,684.597L207.856,684.604L213.551,686.649L217.945,686.195L217.945,686.195L217.601,686.465L217.68,692.698L216.11,695.461L216.476,700.098L218.243,701.94L219.039,702.385L219.016,703.231L222.062,703.143L224.127,703.831L224.374,706.965L226.017,707.119L226.219,708.411L226.59,709L226.766,714.311L228.814,717.422L231.966,719.125L232.616,719.168L235.262,720.958L235.618,722.895L234.541,724.9L234.619,725.605L235.727,728.158L239.986,732.725L239.602,734.334L239.653,741.12L238.623,742.333L238.47,743.524L237.494,744.168L237.563,745.489L235.708,748.71L236.724,750.555L237.325,752.94L239.109,754.091L239.109,754.091L238.727,754.563L237.967,754.583L235.995,754.142L233.878,754.191L227.781,756.707L224.436,758.807L217.926,761.327L214.777,764.863L210.813,767.848L208.251,769.368L192.789,775.962L192.859,776.324L189.384,778.053L189.304,777.801L183.81,780.286L178.273,779.354L163.384,777.678L163.384,777.678L163.292,776.479L162.83,776.047L161.629,775.602L160.049,776.333L159.656,775.447L159.509,774.651L160.332,774.155L160.066,773.226L160.137,771.677L159.416,770.546L157.221,769.293L156.925,768.424L157.059,767.041L155.865,765.311L155.78,764.599L156.539,763.668L156.567,763.143L156.263,762.961L155.653,760.097L153.961,757.917L152.865,757.192L152.462,756.979L150.64,757.115L150.167,754.41L151.211,750.873L150.412,749.839L150.048,747.849L150.908,746.941L152.658,746.083L153.321,743.501L152.155,741.59L152.061,740.109L154.335,738.238L154.959,736.698L154.378,734.842L155.056,733.868L154.983,733.327L153.827,733.028L153.825,732.639L154.257,732.326L153.822,731.202L153.576,730.929L152.721,730.837L153.074,730.133L153.593,729.88L153.53,728.59L154.066,727.645L155.144,727.371L155.546,726.762L156.126,724.646L157.105,724.455L157.653,724.02L158.777,722.395L159.483,720.678L160.045,718.093L162.212,715.184L162.401,714.017L162.143,713.102L160.99,712.886L160.17,713.078L159.485,712.742L158.77,711.116L158.974,710.483L160.118,709.12L161.725,707.819L162.478,707.877L162.657,707.65L162.913,705.571L162.913,705.571L162.826,704.186L171.802,704.2L171.846,687.381L179.252,687.011L181.643,686.31L183.857,685.106L186.349,686.007L193.267,687.191L196.038,686.221L197.903,684.664L197.805,684.303L199.652,682.921L202.479,682.637z","Sédhiou","#FBF083","Blahblah"},
    			{"M256.93,353.988L257.769,353.853L259.661,352.231L259.885,353.611L260.553,354.058L261.127,354.058L261.791,353.266L262.277,351.39L263.103,351.025L263.496,351.286L264.78,353.496L266.614,353.079L267.957,353.664L268.539,353.105L268.756,351.96L269.455,351.672L271.769,354.186L272.214,353.988L273.538,351.724L274.193,351.501L275.354,352.457L275.439,354.404L277.11,355.264L277.318,355.011L276.891,353.984L277.936,353.772L277.866,352.547L278.075,352.386L279.245,353.239L281.627,352.521L285.957,352.102L286.529,352.588L286.469,353.486L285.45,353.775L285.374,354.208L286.657,355.446L287.623,354.333L288.799,354.22L289.52,354.491L290.184,355.397L290.99,354.76L291.992,355.132L293.227,354.73L294.809,355.419L295.233,354.71L295.62,352.859L295.984,352.707L297.459,354.189L300.602,355.745L301.612,355.452L302.725,354.498L305.524,354.779L306.545,353.111L308.181,351.812L308.828,352.157L309.151,353.452L309.628,353.848L311.943,353.343L313.576,353.752L316.003,352.918L316.888,353.044L317.426,354.077L317.333,357.063L316.688,359.466L317.146,360.671L317.75,360.773L318.799,360.216L320.256,360.172L321.151,358.878L322.141,358.73L323.068,359.59L322.481,361.986L323.951,365.166L324.383,365.117L324.448,363.724L325.326,362.712L327.952,362.903L329.034,363.813L329.972,364.178L329.529,365.331L329.899,366.41L333.216,368.101L334.733,370.254L335.439,370.345L336.09,369.681L336.574,369.764L335.803,371.123L336.051,372.127L337.946,372.712L338.721,373.379L339.187,374.816L342.34,376.707L343.17,378.031L345.663,380.495L346.635,382.513L349.707,382.997L350.824,383.817L352.839,384.665L353.916,386.276L353.858,386.997L353.545,387.187L352.055,386.725L350.976,386.954L350.604,387.414L350.968,390.369L353.625,390.371L354.456,390.978L352.818,392.798L352.265,395.645L353.058,395.685L355.388,394.502L356.542,395.284L357.541,394.993L357.911,397.884L358.575,398.647L359.407,399.024L361.082,398.19L361.905,398.5L362.623,399.256L362.776,399.864L361.852,401.213L361.746,402.826L362.759,404.175L362.874,405.179L363.935,405.481L364.579,407.534L365.146,407.578L366.829,405.536L369.622,403.947L372.088,404.06L374.646,403.159L377.177,400.203L378.09,399.912L378.889,400.271L379.117,401.223L378.906,401.96L377.479,403.437L377.58,404.62L377.58,404.62L377.009,405.918L375.254,413.758L367.146,416.635L365.098,417.72L364.659,418.344L364.414,419.608L362.572,421.536L361.882,422.942L360.825,423.365L356.293,428.11L353.969,429.015L351.767,440.416L349.97,453.044L347.288,464.661L331.814,464.101L332.457,467.901L328.705,468.593L328.528,470.248L329.936,471.616L329.857,473.004L331.439,473.01L331.751,474.252L330.13,478.262L324.568,481.359L314.551,481.418L310.063,482.482L309.675,481.8L310.336,480.177L306.005,474.904L306.431,469.313L306.003,461.611L308.573,461.607L309.18,458.873L309.417,458.698L309.423,457.347L309.87,457.368L310.359,455.152L309.857,454.96L309.531,454.264L305.1,454.234L304.888,452.908L303.502,450.938L301.311,450.056L300.494,449.425L300.878,447.568L300.035,443.308L300.367,441.123L300.756,440.52L297.07,435.511L297.07,435.511L291.04,425.25L290.568,425.28L289.529,426.508L285.563,425.915L285.93,422.874L285.062,421.074L282.222,424.18L276.411,427.246L274.579,429.195L271.876,430.697L269.449,431.588L266.817,427.158L264.5,425.784L257.495,418.491L253.915,420.886L241.166,421.966L238.22,424.083L237.063,423.967L231.833,422.338L231,421.305L229.691,417.804L229.032,417.561L227.152,415.765L224.243,414.578L223.048,413.571L219.619,415.172L216.479,415.425L214.064,412.883L212.837,414.963L212.725,416.846L213.417,418.656L211.035,418.697L208.402,420.094L210.058,424.593L209.77,427.729L208.605,427.161L206.608,426.742L201.413,428.83L199.503,428.969L197.168,428.514L198.26,426.461L198.526,425.313L197.056,423.146L189.568,419.289L178.492,409.134L169.76,399.473L168.949,399.682L165.146,402.364L160.405,406.602L159.593,408.083L156.217,409.43L148.125,413.478L146.104,414.085L142.159,416.307L139.917,416.772L138.521,417.454L138.003,418.187L138.178,418.521L135.812,422.098L130.626,426.251L127.394,428.147L126.526,429.419L126.129,430.94L125.582,431.53L125.339,431.2L123.752,432.955L121.065,433.966L120.19,435.578L119.421,435.683L118.862,434.766L118.229,434.826L117.483,435.388L115.488,435.617L111.868,435.6L108.435,435.039L106.848,435.194L104.016,436.225L100.857,438.509L99.623,438.713L99.385,439.726L99.136,439.666L99.136,439.666L100.644,433.762L101.604,422.301L101.979,412.183L104.596,412.132L105.712,410.374L106.36,410.053L106.709,408.974L108.065,408.232L108.128,407.563L106.929,406.533L106.775,405.943L107.26,404.778L106.963,402.963L107.215,402.515L107.01,399.727L108.177,397.697L109.227,396.572L110.977,395.881L112.691,396.606L113.762,396.269L115.163,394.588L116.067,391.909L116.967,391.137L117.045,390.051L115.683,388.065L115.859,386.418L116.821,384.749L117.448,384.252L118.357,384.046L119.165,382.931L119.374,382.225L119.091,380.79L119.242,377.979L119.98,377.051L121.26,376.848L121.41,376.585L121.53,372.931L121.829,371.49L122.592,370.407L123.836,369.813L124.027,366.615L124.652,365.815L125.947,364.964L128.24,364.322L129.651,364.668L131.205,365.488L133.498,365.337L134.945,364.544L136.338,362.917L137.342,362.222L138.805,361.763L139.129,361.946L141.131,361.639L142.052,362.136L142.429,362.692L142.62,363.388L142.474,365.059L144.808,366.591L146.932,369.54L148.659,369.349L150.891,367.521L152.082,367.058L153.674,367.473L154.804,368.249L155.146,368.843L155.572,368.932L156.176,366.585L158.079,363.189L161.377,361.04L161.499,361.979L160.941,364.194L159.772,366.433L160.859,365.922L162.929,365.599L165.29,365.922L166.149,366.678L166.265,368.207L168.728,366.826L169.994,366.451L170.972,366.485L173.841,367.798L178.915,368.5L181.923,370.244L183.024,369.368L186.869,369.003L188.527,368.311L189.034,367.414L188.609,365.508L189.472,364.426L190.747,364.601L191.927,364.376L194.25,365.802L195.602,366.104L197.244,365.948L199.865,365.132L200.738,364.387L199.65,362.694L199.7,361.65L200.077,360.935L201.205,360.003L203.434,359.023L203.834,358.401L204.67,357.905L206.452,358.192L207.731,359.25L208.432,360.526L208.736,362.386L209.18,362.918L211.595,363.576L213.971,362.445L215.406,361.209L217.533,361.186L220.502,359.814L224.237,360.541L225.684,360.479L227.185,361.865L227.864,362.054L228.714,362.01L231.081,360.39L233.121,359.543L234.053,358.375L235.118,358.396L238.328,359.48L239.635,359.281L242.167,357.233L242.767,356.376L242.732,355.509L241.678,353.967L239.838,353.733L239.265,353.311L239.347,351.612L241.389,349.248L242.491,349.314L243.351,349.74L243.924,350.591L244.672,352.747L245.655,354.278L245.945,354.327L246.402,353.833L247.745,354.035L250.803,352.738L251.221,351.82L251.417,348.66L252.062,347.851L253.081,347.896L255.683,349.295L255.83,350.201L255.496,351.925L256.235,353.375z","Saint-Louis","#F1A1AC","Blahblah"},
    			{"M267.232,645.003l-0.002,-0.006l0,0L267.232,645.003zM267.232,645.003l0.457,-0.452l-0.042,-0.4l1.001,-0.854l1.875,-2.465l8.11,-0.81l2.786,-6.691l1.663,-0.775l7.078,-4.74l1.727,-4.697l-2.508,-0.209l2.159,-1.283l0.639,-0.725l-0.909,-6.845l1.057,-1.465l-0.374,-0.496l-0.673,-0.225l0.737,-4.613l-1.073,-11.496l-0.071,-0.405l-2.756,-2.377l-1.602,-1.853l0.699,-13.054l0.347,-0.187l0.106,-0.515l-0.248,-3.09l0.574,-9.408l2.125,-0.162l0.581,-1.271l0,0l2.582,-0.009l2.308,1.422l3.682,-0.209l0.986,-1.494l1.337,-0.719l6.072,-2.549l1.881,-1.079l1.644,-0.374l2.369,2.301l8.701,1.634l5.85,3.408l-0.245,0.443l2.621,0.351l7.614,2.565l4.017,-4.794l11.592,-1.18l7.675,1.392l9.705,15.454l16.463,0.381l10.245,-0.361l0.972,-0.502l13.43,-10.417l1.597,-1.732l1.784,-0.888l8.77,-6.792l20.475,3.148l3.69,0.781l4.77,1.452l15.336,-2.247l7.443,-3.354l6.649,-9.203l6.214,-19.27l-1.133,-1.862l-0.261,-0.949l0.262,-0.347l-0.409,-0.449l0.845,-1.415l-0.503,-0.229l-0.219,-0.918l-0.527,0.275l-0.709,-1.278l-0.292,-0.703l0.518,-0.765l-0.715,-0.437l-0.337,-1.7l-1.657,-2.333l-0.49,-1.355l-0.434,0.053l-3.646,-5.031l0,0l0.186,-1.279l0.432,-0.649l1.029,-0.378l1.113,0.135l5.153,2.474l1.819,2.188l3.779,3.114l5.785,1.716l1.397,1.16l1.64,2.056l0.827,6.05l0.41,0.845l-0.499,1.649l0.09,0.505l1.391,1.061l2.537,2.629l1.689,1.225l4.183,1.662l2.761,0.319l4.482,5.27l3.881,0.869l0.707,2.662l1.361,0.165l0.818,0.521l0.32,1.237l-0.571,1.361l0.604,0.681l0.905,0.346l1.675,-0.007l1.007,0.878l0.977,-0.245l0.257,0.222l-0.091,0.684l-1.509,0.809l-0.166,0.751l0.236,0.27l2.313,0.535l0.515,0.41l0.19,1.651l-0.426,1.301l-0.528,0.609l-1.686,0.286l-0.077,2.866l-1.384,1.927l-0.087,1.252l-2.133,-0.122l-0.846,0.813l0.366,2.282l-0.705,1.807l-0.053,1.63l2.118,1.313l-0.694,2.197l1.649,1.617l-0.017,0.346l-1.205,1.483l0.048,1.763l1.919,0.982l0.513,-0.446l0.654,0.049l0.629,1.209l0.858,0.422l1.171,0.035l0.415,-0.427l0.836,0.212l0.276,-0.109l-0.229,-0.495l0.414,-0.172l0.154,0.534l-0.542,0.783l0.519,1.039l0.714,0.372l0.257,-0.48l1.117,-0.414l0.868,0.842l0.04,0.67l-0.244,0.158l0.221,0.446l-0.45,-0.103l-0.493,0.736l1.363,1.25l-0.459,0.519l-0.182,-0.188l-0.273,-0.125l-0.141,0.289l-0.164,-0.356l-0.33,-0.093l0.003,0.435l-0.25,-0.051l0.341,0.527l1.384,0.212l-0.521,0.324l0.313,0.173l-0.215,0.473l-0.85,0.231l0.101,0.259l0.434,0.215l0.617,0.299l1.057,-0.075l0.69,0.83l1.341,-0.2l1.81,1.055l1.057,-0.099l-0.051,0.464l0.278,0.17l0.363,-0.35l0.603,0.645l2.353,6.663l0.959,0.854l0.016,1.363l1.18,0.503l0.228,0.437l-0.251,3.748l-0.694,0.982l-0.4,1.371l0.39,0.884l0.168,2.731l-1.398,0.363l0.26,2.104l-0.745,1.206l-0.646,0.199l0.104,1.752l-0.753,0.512l1.019,2.081l0.071,0.719l-0.357,0.468l6.555,-0.289l0.829,7.39l-1.018,6.353l-0.432,0.579l0.073,1.104l-0.599,2.527l0.16,1.172l-1.115,0.367l-0.407,0.912l-0.946,0.253l-0.682,1.463l-2.025,1.669l-0.122,0.718l-0.646,0.533l-0.714,0.007l-2.218,1.64l-2.092,0.793l-0.604,0.792l-0.773,-0.253l3.329,5.828l0.349,1.525l-0.147,2.438l3.669,3.169l0.391,0.652l-0.121,1.792l1.436,0.698l1.141,1.707l0.237,0.883l1.693,1.299l2.377,0.796l0.785,1.351l2.402,1.303l0.58,1.211l1.479,0.732l0.612,0.669l0.443,1.209l-0.025,1.111l-0.169,0.605l-1.147,1.085l-0.129,1.11l-0.849,1.902l0.156,0.833l0,0l-0.948,0.267l-0.788,0.604l-2.125,0.373l-0.385,0.461l-0.812,0.312l-0.938,-0.291l-0.71,0.13l-0.814,1.44l-2.227,2.124l-0.441,0.033l-0.394,0.444l-1.002,0.005l-1.166,1.471l-1.36,-0.234l-0.454,-1.482l0.415,-0.355l0.272,-1.081l-0.397,-0.953l0.371,-1.952l-2.604,1.369l-1.823,-1.222l-3.256,-0.575l-1.789,-1.666l-1.091,-0.286l-0.681,-0.776l-0.365,-1.193l-1.649,-0.55l-3.459,-1.976l-0.35,-0.441l-2.205,-1.042l-0.36,0.14l-1.474,-0.836l-0.808,0.526l0.194,1.512l-0.307,1.597l-0.58,0.2l-0.573,1.013l0.252,0.528l-0.053,1.299l2.962,4.653l0.756,0.652l0.114,0.368l-0.952,1.608l-0.993,0.561l-0.954,0.079l-0.485,0.461l-1.646,-0.442l-1.906,0.157l-0.497,-0.3l-1.1,-0.034l-0.363,2.5l-1.197,1.472l0.007,1.387l-0.144,0.285l-0.942,0.307l-0.439,-0.136l-1.044,-1.626l-2.658,-1.694l-2.612,1.048l-1.231,-0.222l-0.707,1.303l-1.543,0.409l-1.725,1.34l-0.104,0.458l-0.391,0.004l0.115,1.013l-1.357,0.687l-0.668,2.561l-0.75,0.504l0.001,0.575l-0.342,0.236l-1.022,-0.287l-0.923,0.232l-0.446,0.356l-0.189,0.665l-0.358,0.027l-0.352,-0.455l-0.781,0.468l-0.511,-0.425l-1.047,0.552l-0.722,-0.224l-0.685,-0.552l-0.644,-1.108l-0.841,0.021l-0.381,0.324l-0.309,-0.873l-0.846,-0.261l-0.194,1.272l-1.087,0.338l0.131,0.281l-2.52,-0.489l-0.516,0.355l0.001,0.561l-0.49,0.573l-0.805,0.384l-0.57,-0.406l-0.39,0.654l-0.718,0.213l-0.95,-0.133l0.081,1.331l0.275,0.063l-0.228,0.294l0.247,0.324l-0.446,0.746l0.723,0.459l-0.223,0.364l0.365,0.276l-0.717,-0.123l0.122,0.976l-1.407,0.926l0.142,1.21l-1.119,0.33l-0.442,1.048l-1.735,0.179l-0.042,0.694l0.354,0.274l-0.015,0.35l-0.777,0.517l-0.484,0.138l-0.426,-0.451l-1.096,-0.361l-0.503,0.137l-0.083,0.63l-0.812,-0.408l-0.336,1.11l0.399,1.065l-0.307,0.174l-0.382,-0.372l-0.949,0.265l0.047,1.693l-1.354,0.126l-0.906,-0.303l-0.242,0.113l0.186,0.642l-1.394,0.159l0.035,0.46l0.675,0.918l-0.847,-0.313l-0.488,0.164l-0.097,0.718l0.867,0.799l-0.268,0.586l-1.529,-0.27l-0.835,-1.747l-1.14,0.855l-0.573,-0.512l-1.015,-0.249l0.298,-0.746l-0.797,-0.56l-0.709,0.347l-0.23,-1.285l-1.652,-0.926l-0.469,-0.648l-0.508,0.745l-0.585,0.316l-0.418,-0.94l0.146,-0.54l-0.376,0.06l-0.567,-0.679l-0.878,-0.011l-0.201,-0.263l0.552,-1.427l-1.313,0.662l-0.947,-0.807l-1.373,1.208l-0.574,-0.687l-1.168,0.199l-0.675,-0.662l-0.272,0.646l-0.975,0.461l-1.184,0.266l-0.71,-0.129l0.017,0.835l-0.267,0.433l-1.107,-0.275l-0.85,0.144l-0.797,-0.801l-0.258,0.716l-0.968,0.649l-1.177,1.986l-0.767,0.327l-1.578,-1.214l-3.209,-1.549l-0.898,0.583l-0.75,-0.527l-0.379,0.073l-0.175,0.452l-1.082,-0.051l0.543,-0.427l-0.832,-1.035l-0.748,0.283l-0.098,0.76l-0.293,0.163l-0.552,-0.078l0.05,-0.569l-0.913,0.909l-1.34,-0.037l0.215,1.08l-0.229,0.292l0.315,0.5l-0.885,0.747l-0.68,0.081l-0.877,0.856l-0.459,0.074l-0.229,-0.254l-0.169,0.578l0.435,0.405l2.103,0.338l0.543,1.553l1.172,1.027l0.497,1.595l0.298,-0.023l0.376,-0.685l0.281,0.029l1.421,1.334l0.19,1.054l0.64,1.164l1.092,0.693l-0.04,1.032l0.297,0.606l-1.115,1.235l-0.753,0.326l-0.979,-0.432l-0.962,0.109l1.319,0.985l-0.377,1.212l0.124,0.7l2.529,1.291l-0.807,1.259l0.202,0.884l2.601,0.881l1.912,-0.016l0.639,0.99l-0.084,0.287l-1.169,0.56l0.255,0.577l0.983,0.787l-0.618,0.249l-0.896,1.41l0.366,0.743l-0.332,0.634l1.159,4.458l1.521,1.867l-1.928,0.255l-1.634,0.64l-2.23,1.169l-0.627,0.647l-0.008,1.155l0.646,0.864l2.532,1.424l-0.125,0.258l0,0l-0.483,0.079l-0.471,-0.578l-0.307,0.003l-0.16,0.914l-0.592,-0.558l-1.125,-0.257l-0.295,0.681l-1.166,-0.267l-0.704,0.968l-1.175,-1.063l-1.25,-0.324l0.082,-0.674l-0.47,-0.421l-0.54,0.412l-0.539,-0.163l-0.332,0.688l-0.668,0.354l-0.873,-0.94l-0.879,0.424l-0.893,-0.6l-1.322,0.11l-1.375,-0.548l-0.927,0.488l0.172,0.564l-1.785,0.153l-0.356,-0.216l-0.835,0.463l-1.303,-0.245l0.267,-1.018l-0.474,-0.378l-0.599,0.669l-0.439,-0.527l0.052,-2.678l-0.224,-0.673l-0.652,-0.103l0,0l-1.877,-0.492l-0.831,0.288l-0.157,0.527l-0.671,0.261l-0.257,0.771l-0.644,0.072l-1.079,-0.393l-1.401,0.758l-0.777,-0.55l0.152,-0.946l-0.51,-0.386l-0.558,0.092l0.515,-0.697l-0.422,0.009l-0.3,0.355l-0.226,-0.145l0.761,-0.462l0.207,-0.759l-0.522,0.46l-0.343,-0.361l-0.814,-0.188l-0.931,1.049l-0.791,0.239l0.341,-1.055l0.43,-0.095l-0.305,-1.127l-0.737,-0.475l0.445,-0.108l0.214,0.371l0.299,-0.029l0.453,-0.637l-0.365,-0.999l-0.523,-0.203l-0.239,-0.561l0.41,-0.625l0.697,0.129l-0.44,-1.271l0.415,-0.741l-0.372,-1.44l-0.694,0.587l-0.27,-0.229l1.014,-1.796l-0.239,-0.566l-1.31,-0.104l-0.359,-1.96l1.356,-0.92l-0.198,-1.047l-1.04,-0.443l0.128,-0.359l0.585,0.005l0.82,0.194l0.723,0.562l0.565,-0.449l-0.286,-0.819l-2.027,-1.617l0.136,-0.378l0.989,-0.028l-0.507,-0.473l0.49,-1.362l-0.588,-0.204l-0.956,0.152l-1.322,-1.205l-0.981,-0.173l-0.08,-1.252l-0.551,-0.947l0.803,0.11l0.68,-1.097l-0.542,-0.75l-0.342,0.059l0.198,0.462l-1.063,-0.055l-0.575,-0.934l0.775,-0.996l1.304,-0.287l-0.004,-0.671l-0.555,0.368l-0.493,-0.188l0.083,-0.771l-0.861,-0.965l0.958,-0.557l0.319,-1.025l-1.119,-0.976l-1.225,1.062l-0.201,-0.464l-0.361,0.146l0.264,-1.259l0.575,-0.117l-0.479,-0.347l1.118,-0.379l-0.095,-1.109l-0.888,0.149l-0.254,0.311l-0.067,-0.597l-0.402,0.472l-0.076,-0.377l-0.928,-0.34l0.315,-0.356l0.19,-0.105l0.001,-0.244l-0.705,-0.811l-0.621,0.503l-0.262,-0.105l0.171,-0.424l-0.259,-0.151l0.983,-0.864l-0.946,-0.891l-0.678,0.195l0.173,0.37l0.171,0.37l-0.188,0.268l-0.681,-0.275l-0.06,0.376l-0.469,-0.172l-0.308,-0.374l-0.017,-0.962l0.439,-0.212l0.235,-0.521l-0.394,-0.222l0.017,-0.413l0.541,0.205l0.089,-0.321l-0.747,-0.143l-0.75,0.958l-0.056,-0.743l0.285,-0.212l-0.5,-0.599l0.349,-0.38l-0.187,-0.475l-0.54,-0.031l-0.004,0.418l-0.323,-0.685l-0.325,0.098l-0.366,-0.399l0.251,-0.258l-0.169,-0.302l0.304,-0.045l-0.325,-0.329l0.108,-0.302l0.363,0.125l0.134,-0.312l-0.971,-0.39l-0.205,0.235l-0.593,-0.416l-0.279,0.25l-0.272,-0.15l0.086,-0.667l0.865,-0.271l-0.104,-0.353l-0.624,-0.029l0.227,-0.776l0.616,0.482l0.391,-0.424l-0.21,-0.41l-0.642,-0.136l-0.148,-0.458l0.153,-0.15l0.361,0.271l0.09,-0.45l-0.285,-0.038l-0.015,-0.303l-0.629,0.1l-0.197,-0.365l0.55,-0.523l-0.368,-0.161l0.242,-0.33l0.537,-0.012l0.274,-0.661l-0.281,-0.229l0.379,-0.462l-0.145,-0.278l-0.938,-0.184l0.596,-0.495l0.521,-0.033l0.244,0.617l-0.013,-1.088l0.417,-0.165l-0.46,-0.285l0.002,-0.528l-0.517,-0.265l-0.385,0.158l0.153,-0.837l0.471,0.202l-0.473,-0.762l0.127,-0.295l-0.438,-0.029l-0.042,-0.564l-0.402,-0.344l-0.466,0.471l-0.652,0.144l-0.797,0.003l-0.776,-0.434l-0.143,-0.767l0.716,-1.813l-1.02,-0.876l-2.75,0.422l-1.126,-1.288l-0.113,-0.556l1.207,-1.208l1.368,-3.36l-0.182,-0.249l-0.856,0.149l-2.536,0.861l-0.425,-0.836l1.791,-2.262l1.143,-0.775l0.071,-0.979l-0.346,-0.264l-1.666,0.084l-5.021,1.125l-2.325,-0.059l-0.516,-0.364l1.507,-1.358l0.734,-1.174l0.081,-1.533l-0.71,-0.763l-0.02,-0.965l1.555,-1.186l1.851,-0.948l0.564,-1.21l-2.322,-1.271l-3.145,-0.78l-2.284,1.952l-0.882,-0.144l-0.424,-1.36l1.007,-2.32l0.093,-1.845l1.034,-1.469l-0.257,-0.725l-1.214,0.247l-2.107,-0.452l-1.094,2.384l0.058,1.911l-2.122,-0.733l-0.576,0.073l0,0l-0.916,-1.014l-1.146,-2.085l-0.963,-0.99l-1.401,-0.761l-3.354,-0.937l-1.932,-0.988l-1.486,-0.116l-2.167,0.644l-3.184,1.958l-6.124,-0.123l-4.611,1.812l-2.269,0.225l-4.112,2.356l-2.164,1.862l-1.513,1.858l-3.528,0.282l-4.736,1.678l-2.604,-1.123l-2.098,-0.298l-0.683,-0.811l-1.851,-1.171l-3.236,-1.295l-0.649,-1.21l-0.957,-0.996l-2.469,-1.716l-0.104,-1.757l-0.644,-2.688l-1.974,-3.197l-2.167,-1.71l-2.912,-1.562l-3.29,-0.628l-4.467,-0.067l-3.202,1.223l-2.997,1.88l-1.052,0.965l-0.925,0.083l-7.045,-3.779l-0.409,-1.542l-0.776,-0.086l-0.115,-0.608l0.677,-0.59l-0.13,-1.469l-0.61,-2.283l-1.02,-0.702l0.22,-1.162l-0.452,-0.632l-0.694,-0.091l-0.474,-1.337L267.232,645.003z","Tambacounda","#FCEA0D","Blahblah"},
    			{"M80.81,473.52L83.632,475.235L84.292,476.224L84.339,477.313L81.372,481.604L79.542,486.592L78.96,489.514L79.266,489.912L81.875,490.875L83.122,492.605L84.915,493.589L86.307,495.259L89.617,497.414L90.009,498.132L89.987,499.333L91.113,499.757L91.788,501.114L91.694,504.387L91.014,505.5L91.382,505.563L93.011,504.12L93.648,502.968L95.999,500.555L99.836,493.119L100.967,492.876L101.532,492.39L101.742,491.447L101.359,491.121L102.76,488.937L107.745,483.771L108.314,484.085L110.964,486.968L111.935,487.39L114.552,487.883L116.97,487.467L117.801,487.771L119.289,490.221L119.209,491.023L118.185,492.395L119.426,494.063L120.358,494.735L121.297,494.988L121.694,494.648L122.065,492.918L123.191,492.522L124.194,492.935L125.432,494.5L125.854,496.316L125.676,498.154L125.939,499.886L127.136,502.27L128.125,503.23L128.863,504.649L128.976,507.602L132.885,510.776L133.124,515.648L134.706,519.676L134.988,522.632L134.836,524.033L134.836,524.033L130.784,525.133L129.858,525.031L129.502,524.576L128.399,524.947L128.055,523.446L128.36,522.979L127.614,522.467L124.981,521.296L120.476,520.084L120.497,519.266L119.874,518.717L119.162,518.764L118.747,519.287L116.816,518.687L117.112,517.792L116.792,517.522L116.087,518.54L114.641,518.193L114.065,518.36L113.765,518.038L108.644,517.796L105.793,518.616L103.321,520.237L100.192,520.4L100.294,521.092L99.768,521.305L93.457,523.227L89.121,524.145L87.369,525.013L85.178,527.017L84.656,527.645L87.711,531.564L89.302,532.862L90.416,534.356L90.751,536.389L88.866,538.06L88.317,539.346L93.471,543.692L92.979,545.701L92.592,546.192L92.68,547.028L93.133,547.177L92.571,549.027L91.394,549.544L88.844,553.073L88.736,554.702L89.414,554.869L89.158,555.841L89.493,556.231L90.25,556.053L90.558,556.801L91.199,556.973L91.076,557.296L92.061,558.698L93.406,559.619L93.445,560.044L95.69,560.686L100.585,560.232L101.156,561.749L101.156,561.749L101.214,562.919L100.269,564.74L100.315,565.476L99.399,569.112L97.904,571.771L93.586,575.419L91.364,576.326L89.62,578.201L88.206,578.503L84.104,578.263L83.445,579.038L83.232,580.623L82.703,581.695L82.196,585.934L82.522,590.046L82.349,590.989L79.807,594.708L80.29,595.399L80.866,595.386L79.945,596.253L78.708,596.771L79.08,598.087L78.779,598.888L79.401,599.766L80.861,600.535L80.857,601.912L79.854,603.079L79.146,603.171L78.354,604.225L77.552,604.474L76.957,605.306L77.938,606.727L77.925,607.316L77.372,607.209L76.211,607.632L75.34,607.301L74.841,607.445L74.184,608.417L74.134,609.024L74.401,609.412L76.639,610.86L76.544,611.469L77.933,612.985L78.023,615.116L76.873,615.176L75.942,616.414L75.942,616.414L74.928,612.074L73.112,608.473L73.173,608.132L72.661,607.722L71.963,607.967L71.29,607.746L71.353,607.025L70.857,606.741L70.785,607.099L68.586,604.806L67.718,603.379L66.775,602.913L66.483,600.178L65.621,597.539L62.196,593.103L61.397,592.69L60.589,592.675L60.232,590.397L60.37,586.867L60.007,585.635L59.136,584.577L58.606,583.032L57.97,582.53L56.663,580.489L54.993,579.501L52.95,577.426L51.595,577.06L50.654,576.237L48.786,576.097L47.868,575.491L47.271,574.058L46.472,573.763L45.67,572.349L44.79,571.513L44.247,569.176L43.033,566.29L40.437,564.123L39.205,561.784L39.205,561.784L41.075,560.658L40.401,558.736L41.105,555.638L41.108,554.082L39.975,553.093L40.468,550.589L40.49,549.856L40.118,549.815L40.143,549.522L40.603,549.017L42.071,548.675L42.553,548.23L42.727,547.022L42.529,545.723L41.579,545.42L41.326,545.081L41.209,543.35L40.562,540.715L39.514,537.818L38.659,536.34L38.263,531.512L37.765,531.05L37.765,531.05L40.959,529.358L43.015,525.016L54.302,512.233L63.393,500.597L67.259,495.197L76.179,480.53z","Thiès","#3875FF","Blahblah"},
    			{"M90.072,705.396L90.548,705.737L91.49,705.754L93.572,705.284L94.715,705.79L96.572,705.851L115.769,705.762L133.301,706.043L149.929,705.952L157.145,705.368L162.913,705.571L162.913,705.571L162.657,707.65L162.478,707.877L161.725,707.819L160.118,709.12L158.974,710.483L158.77,711.116L159.485,712.742L160.17,713.078L160.99,712.886L162.143,713.102L162.401,714.017L162.212,715.184L160.045,718.093L159.483,720.678L158.777,722.395L157.653,724.02L157.105,724.455L156.126,724.646L155.546,726.762L155.144,727.371L154.066,727.645L153.53,728.59L153.593,729.88L153.074,730.133L152.721,730.837L153.576,730.929L153.822,731.202L154.257,732.326L153.825,732.639L153.827,733.028L154.983,733.327L155.056,733.868L154.378,734.842L154.959,736.698L154.335,738.238L152.061,740.109L152.155,741.59L153.321,743.501L152.658,746.083L150.908,746.941L150.048,747.849L150.412,749.839L151.211,750.873L150.167,754.41L150.64,757.115L152.462,756.979L152.865,757.192L153.961,757.917L155.653,760.097L156.263,762.961L156.567,763.143L156.539,763.668L155.78,764.599L155.865,765.311L157.059,767.041L156.925,768.424L157.221,769.293L159.416,770.546L160.137,771.677L160.066,773.226L160.332,774.155L159.509,774.651L159.656,775.447L160.049,776.333L161.629,775.602L162.83,776.047L163.292,776.479L163.384,777.678L163.384,777.678L156.912,778.467L148.58,775.568L145.61,775.669L136.455,777.958L132.446,776.665L125.795,779.577L118.773,783.631L115.577,785.14L114.896,786.572L110.958,786.221L104.396,787.072L101.979,787.766L98.678,786.766L92.681,788.161L89.26,787.116L84.365,786.897L81.438,788.829L80.305,787.373L80.128,785.843L79.685,784.926L79.202,784.543L78.848,784.632L78.206,783.779L76.141,782.343L74.403,776.996L74.215,774.228L75.821,770.237L76.826,762.705L76.56,760.588L75.545,758.694L75.491,758.153L75.853,757.772L74.876,755.908L74.512,753.073L75.603,750.142L75.694,748.56L75.13,747.772L74.299,747.826L74.61,747.478L74.6,746.932L74.244,745.788L75.531,742.147L75.666,740.399L76.353,737.204L77.039,735.415L77.998,729.687L78.683,727.816L79.671,719.554L79.529,717.944L78.476,715.943L78.95,715.029L80.177,714.588L80.348,714.17L79.883,713.124L80.591,712.739L79.566,711.838L79.592,711.323L79.875,710.845L80.302,710.821L80.965,711.432L81.076,710.98L80.689,710.183L81.937,710.134L82.215,709.855L82.311,708.92L83.094,708.979L82.893,708.011L82.285,707.354L82.646,706.715L83.291,706.973L83.025,706.115L84.013,706.323L84.341,705.525L86.026,705.539L87.247,704.896z","Ziguinchor","#FD9164","Blahblah"},
    		};
     
    		public static List<MapRegion> createRegions(String[][] desc) { // méthodes qui analyse le tableau pour en faire une liste de région
     
    			final List<MapRegion> list = new ArrayList<>(); // une liste pour stocker les régions
    			for(String[] regionDesc : desc) { // on parcourt le tableau
    				Path2D path = simpleSVGToPath2D(regionDesc[0]); // première colonne, définition SVG du path, qu'on va parser (analyser la chaîne de caractères et la convertir en Path2D)
    				String name = regionDesc[1]; // deuxième colonne, nom de la région
    				Color color = toColor(regionDesc[2]); // troisième colonne, couleur
    				String data = regionDesc[3]; // quatrième, texte à afficher
    				list.add(new MapRegion(path, color, name, data)); // on ajoute la nouvelle région
    			}
    			return list;
     
    		}
     
    		private static Color toColor(String colorDef) { // méthode qui convertit une couleur au format "css" en couleur Java
    			return Color.decode(colorDef);
    		}
     
    		private static Path2D simpleSVGToPath2D(String string) { // méthode qui convertit un path SVG en Path2D
    			string = string.replace(',', ' '); // pour faciliter le traitement des séparateurs (espace=virgule)
    			Path2D path = new Path2D.Double(); // on créé un path
    			char lastCommand=0; // en SVG, une commande qui suit la même commande n'est pas répété : on a besoin de connaitre la commande précédemment exécutée
    			Point2D point = new Point2D.Double(); // le point pour dessiner le path en SVG
    			for(int i=0; i<string.length(); ) { // on va parcourt tous les caractères de la définition 
    				char command = string.charAt(i); // i est la position du caractère à traiter
    				if ( command==' ') { // si la commande est une espace, alors on utilise la dernière commande
    					command=lastCommand;
    				}
    				else {
    					lastCommand=command; // on stocke la dernière commande pour la prochaine itération qui fait une référence à la commande précédente
    				}
    				switch(command) { // selon la commande
    				case 'M': // si la commande est M = moveTo SVG
    					i = parsePoint2D(i, string, point, false); // on parse les coordonnées du point qui suivent dans la description
    					path.moveTo(point.getX(), point.getY()); // on fait le move
    					break;
    				case 'l': // si la command est l = lineTo relatif 
    					i = parsePoint2D(i, string, point, true); // on parse les coordonnées du point qui suivent dans la description
    					path.lineTo(point.getX(), point.getY());  // on fait le lineTo
    					break;
    				case 'L': // si la commande est L = lineTo absolu
    					i = parsePoint2D(i, string, point, false); // on parse les coordonnées du point qui suivent dans la description
    					path.lineTo(point.getX(), point.getY()); // on fait le lineTo
    					break;
    				case 'h': // = lineTo horizontal relatif 
    					i = parseHor2D(i, string, point, true);
    					path.lineTo(point.getX(), point.getY()); // on fait le lineTo
    					break;
    				case 'H': // = lineTo horizontal absolu
    					i = parseHor2D(i, string, point, false);
    					path.lineTo(point.getX(), point.getY()); // on fait le lineTo
    					break;
    				case 'v': // = lineTo vertical relatif
    					i = parseVert2D(i, string, point, true);
    					path.lineTo(point.getX(), point.getY());
    					break;
    				case 'V': // = lineTo vertical relatif
    					i = parseVert2D(i, string, point, true);
    					path.lineTo(point.getX(), point.getY());
    					break;
    				case 'c': // = cubic bezier relatif
    					i = bezierCurve(path, i, string, point, true);
    					break;
    				case 'C': // = cubic bezier absolu
    					i = bezierCurve(path, i, string, point, false);
    					break;
    				case 'z': // fermeture du path
    					path.closePath();
    					i++;
    					break;
    				default:
    					throw new IllegalStateException("Command: "+command);
    				}
    			}
    			return path;
    		}
     
    		/**
                     *  parse et ajoute une bezier au path
                     * @param path : le path2D qu'on es en train de créé
                     * @param index : la position du prochain caractère dans la description SVG
                     * @param string : la description SVG
                     * @param point : le point qui sert à mémoriser le dernier point dessiné
                     * @param relative : un booléen qui dit qu'on est en train de faire du relatif(true) ou de l'absolu(false)
                     * @return la position du prochain caractère à traiter dans la description SVG pour tracer la suite du contour
                     */
    		private static int bezierCurve(Path2D path, int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			int start=index;
    			index = nextIndex(string, index);
    			double xp1 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double yp1 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double xp2 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double yp2 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double xp3 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double yp3 = Double.parseDouble(string.substring(start, index)); 
    			if ( relative ) {
    				xp1+=point.getX();
    				xp2+=point.getX();
    				xp3+=point.getX();
    				yp1+=point.getY();
    				yp2+=point.getY();
    				yp3+=point.getY();
    			}
    			path.curveTo(xp1, yp1, xp2, yp2, xp3, yp3);
    			point.setLocation(xp3, yp3);
    			return index;
    		}
     
    		// analyse la string SVG à partir de index pour déterminer les coordonnées (x et y) relatives ou absolues du prochain point et retourne la nouvelle position dans la description pour parser la suite
    		private static int parsePoint2D(int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++; // on passe les séparateurs (tout ce qui n'est ni un chiffre, ni un point, ni un moins)
    			int start=index; // la prochaine coordonnée commence ici (en index)
    			index = nextIndex(string, index); // on cherche la position du dernière caractère du nombre 
    			double x = Double.parseDouble(string.substring(start, index)); // la coordonnée se situe entre start inclus et index exclus, substring permet de récupérer cette partie, et parseDouble converti la chaine en nombre à virgule
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++; // on recommence pareil pour la seconde coordonnée
    			start=index;
    			index = nextIndex(string, index);
    			double y = Double.parseDouble(string.substring(start, index));
    			if ( relative ) { // en mode relatif,
    				point.setLocation(point.getX()+x, point.getY()+y); // on ajoute les 2 nombres trouvés respectivement à l'abscisse et à l'orgonnée
    			}
    			else { // en mode absolu
    				point.setLocation(x, y); // les deux nombres sont respectivement l'abscisse et l'ordonnée
    			}
    			return index; // en retourne la nouvelle position dans la description SVG pour continuer son analyse et terminer de créer le Path2D
     		}
     
    		// idem que parsetPoint2D mais ne parse qu'une seule coordonnée x
    		private static int parseHor2D(int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			int start=index;
    			index = nextIndex(string, index);
    			double x = Double.parseDouble(string.substring(start, index));
    			if ( relative ) {
    				point.setLocation(point.getX()+x, point.getY());
    			}
    			else {
    				point.setLocation(x, point.getY());
    			}
    			return index;
    		}
     
    		// idem que parsetPoint2D mais ne parse qu'une seule coordonnée y
    		private static int parseVert2D(int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			int start=index;
    			index = nextIndex(string, index);
    			double y = Double.parseDouble(string.substring(start, index));
    			if ( relative ) {
    				point.setLocation(point.getX(), point.getY()+y);
    			}
    			else {
    				point.setLocation(point.getX(), y);
    			}
    			return index;
    		}
     
    		// chercher la position de séparation entre une valeur double SVG dans string et la suivante, à partir de la position index
    		// permet de déterminer la fin d'un nombre (coordonnée) commençant en index.
    		private static int nextIndex(String string, int index) {
    			if ( string.charAt(index)=='-' ) index++; // on passe le signe -
    			while("0123456789.".indexOf(string.charAt(index))>=0) index++; // tant qu'on a un nombre ou un point, on avance
    			return index; // retourne la position trouvée
    		} 
     
    		/**
                     *               méthode qui permet de placer un texte relativement à un rectangle : elle calcule la position à utiliser avec la méthode Graphics.drawString()
                     * 
                     * @param g2d contexte graphique
                     * @param bounds bounds du rectangle
                     * @param string le texte
                     * @param halign le type d'alignement horizontal parmi SwingContants.LEFT, SwingConstants.CENTER ou SwingConstants.RIGHT
                     * @param valign le type d'alignement vertical parmi SwingContants.TOP, SwingConstants.CENTER ou SwingConstants.BOTTOM
                     * @return
                     */
    		public static Point2D.Float getStringLocation(Graphics2D g2d, Rectangle2D bounds, String string, int halign, int valign) {
     
    			final FontMetrics fontMetrics = g2d.getFontMetrics(); 
    	 		final Rectangle2D textBounds = fontMetrics.getStringBounds(string, g2d); 
    			final double textWidth = textBounds.getWidth(); 
     
    			double x,y; 
     
    			switch (halign) { 
    			case SwingConstants.LEFT: 
    				x = bounds.getX(); 
    				break;
    			case SwingConstants.RIGHT:
    				x = bounds.getX() + bounds.getWidth() - textWidth;
    				break;
    			case SwingConstants.CENTER:
    			default:
    				x = bounds.getX()
    				+ (bounds.getWidth() - textWidth) / 2;
    				break;
    			}
    			switch (valign) {
    			case SwingConstants.TOP:
    				y = bounds.getY() + fontMetrics.getAscent() - fontMetrics.getDescent();
    				break;
    			case SwingConstants.BOTTOM:
    				y = bounds.getY()
    				+ bounds.getHeight()  - fontMetrics.getDescent() ;
    				break;
    			case SwingConstants.CENTER:
    			default:
    				y = bounds.getY()
    				+ bounds.getHeight()/ 2  - ( ( fontMetrics.getAscent() + fontMetrics.getDescent() ) / 2 ) + fontMetrics.getAscent()  ;
    				break;
    			}	 
     
    			return new Point2D.Float((float)x, (float)y);
    		}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #25
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    mon cher apprend moi la programmation s'il vous plait

  6. #26
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par diop.abdoulahi Voir le message
    mon cher apprend moi la programmation s'il vous plait
    Il y a plein de tutoriels sur le site Developpez pour apprendre. Ensuite, sur ce forum, on est tous là pour t'aider, mais pas pour te former/t'enseigner. Déjà que ça prendrait beaucoup trop de temps, mais on n'est pas forcément enseignant (ce qui est mon cas).

    Tiens voilà une variante de mon dernier code avec l'implémentation de l'algorithme MapBox pour le centrage du nom de région, qui est beaucoup plus mieux au niveau placement (en plus il y avait un bug au niveau du traitement de l'offset que j'ai dû introduire vu que la carte du Sénégal n'était pas calée en haut à gauche (je suppose qu'elle est relative à la carte de l'Afrique, vu l'offset que ça donne - je corrige le truc dans mon précédent post aussi) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    public class MapPanel extends JPanel { // une classe qui permet d'afficher un ensemble de région et de gérer la sélection d'une région
     
    	private static final Color SELECTION_COLOR = new Color(0,0,0,164); // la couleur utilisée pour marquer une sélection : il s'agit d'un noir transparent (le 164 est une transparence de 255/164=64% environ)
    	private final List<MapRegion> regions = new ArrayList<>(); // la liste des régions affichées
    	private final EventListenerList regionSelectionListenerList; // un conteneur d'écouteur d'évenement spécifique pour gérer la sélection (non indispensable, mais plus simple à gérer)
    	private Dimension preferredSize = new Dimension(0,0); // la taille du panel (à 0,0 au début, puisque pas de région
    	private MapRegion selectedRegion; // la région actuellement sélectionnée
    	private Point offset = new Point(0,0);
    	private AffineTransform offsetTransform = new AffineTransform();
     
    	public MapPanel() {
    		regionSelectionListenerList = new EventListenerList(); // créé le conteneur d'écouteur d'évenement
    		addMouseListener(new MouseAdapter() { // un écouteur de souris pour gérer le clic sur région
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				if ( e.getClickCount()==1 && e.getButton()==MouseEvent.BUTTON1 ) { // si un clic sur le bouton de clic de la souris
    					for(MapRegion region : regions) { // on parcourt toutes les régions
    						if ( offsetTransform.createTransformedShape(region.path).contains(e.getPoint()) ) { // si la forme de la région contient le point de la souris
    							fireRegionSelected(region); // alors on envoi l'évenment "région cliquée"
    						}
    					}
    				}
    			}
    		});
    	}
     
    	public void select(MapRegion region) { // cette méthode permet de sélection une région (ou de désectionner en passant null)
    		selectedRegion=region; // on affecte la région sélectionnée avec le paramètre
    		repaint(); // on redessine le panel (pour que la région sélectionnée se marque comme étant sélectionnée, ou que la région déselectionnée ne se marque plus comme étant sélectionnée
    	}
     
    	public void register(MapRegion region) { // cette méthode permet d'ajouter une nouvelle région
    		regions.add(region); // on stocke la nouvelle région dans la liste de régions
    		Rectangle bounds = null; // on veut calculer la taille du composant (soit la taille minimum pour afficher toutes les régions) : on va faire l'union de toutes les bounds
    		// les bounds d'une forme c'est le rectangle horizontal minimum qui contient l'ensemble de la forme (quelque soit la forme, un triangle, un cercle, une forme complexe représentant une région d'un pays, etc...)
    		for(MapRegion reg : regions) { // on parcourt toutes les régions
    			if ( bounds==null ) {
    				bounds=reg.path.getBounds(); // pas d'union de la première avec la précéndente, parce que pas de précédente
    			}
    			else {
    				bounds = bounds.union(reg.path.getBounds()); // on fait l'union de la zone de la région courante avec la taille servant à faire l'union de toutes les bounds
    			}
    		}
    		this.offset = new Point((int)bounds.getX(),(int)bounds.getY()); // un offset pour recaler la carte en haut à gauche
    		this.preferredSize=new Dimension((int)bounds.getWidth(),(int)bounds.getHeight()); // la taille du composant est l'espace compris entre 0,0 et maxX, maxY de l'union de tous les bounds (fait un dessin pour t'en rendre compte si nécessaire)
    		this.offsetTransform  = AffineTransform.getTranslateInstance(-offset.getX(), -offset.getY());
    		repaint(); // on a ajouté une nouvelle région : il faut redessiner pour la voir apparaitre
    	}
     
    	@Override
    	public Dimension getPreferredSize() {
    		return preferredSize; // on revoit la taille préférentielle du composant, qui est la taille minimum pour afficher toutes les régions (voir méthode register)
    	}
     
    	@Override
    	protected void paintComponent(Graphics g) { // pour dessiner le composant
    		super.paintComponent(g); // on appelle toujours le dessin standard (dessine le fond du composant)
    		g.translate(-offset.x, -offset.y); // permet de recaler la carte en haut à gauche
    		final Graphics2D g2d=(Graphics2D)g; // on a besoin d'accèder à des méthodes spécifiques de Graphics2D
    		g2d.setFont(g2d.getFont().deriveFont(Font.BOLD,12)); // on passe la police actuelle en gras et taille 12 pour afficher les noms de régions
    		for(MapRegion region : regions) { // on parcourt toutes les régions
    			g2d.setPaint(region.color); // on sélectionne la couleur de fond pour tous les dessins qu'on fait après
    			g2d.fill(region.path); // on rempli la forme de la région avec la couleur sélectionnée
    			if ( region==selectedRegion ) { // si la région est sélectionnée
    				g2d.setColor(SELECTION_COLOR); // on sélectionne la couleur de sélection
    				g2d.fill(region.path); // on remplit la forme à nouveau : comme la couleur de sélection est transparent, son noir va se combiner avec la couleur de la forme qu'on a remplie juste avant
    			}
    			g2d.setColor(getForeground()); // on utilise la couleur standard du foreground (noir par défaut)
    			g2d.draw(region.path); // on dessine le contour de la forme, pour avoir une bordure
    		}
    		for(MapRegion region : regions) { // on parcourt toutes les régions
    			Point2D center = region.getVisualCenter();
    			Point2D boundsCenter = new Point2D.Double(region.path.getBounds2D().getCenterX(),region.path.getBounds2D().getCenterY());
    			Point2D loc = getStringLocation(g2d, region.path.getBounds2D(), region.name, SwingConstants.CENTER, SwingConstants.CENTER); // on détermine la position du texte de nom de région
    			g.translate((int)(center.getX()-boundsCenter.getX()), (int)(center.getY()-boundsCenter.getY()));
    			if ( region==selectedRegion ) { // si la région est sélectionnée
    				g2d.setColor(getBackground()); // on sélectionne la couleur de background
    			}
    			else {
    				g2d.setColor(getForeground()); // on sélectionne la couleur de foreground
    			}
    			g2d.drawString(region.getName(), (int)loc.getX(), (int)loc.getY()); // on affiche le nom de région
    			g.translate((int)(boundsCenter.getX()-center.getX()), (int)(boundsCenter.getY()-center.getY()));
    		}
    	}
     
    	/**
             *      @Override
            protected void paintComponent(Graphics g) { // pour dessiner le composant
                    super.paintComponent(g); // on appelle toujours le dessin standard (dessine le fond du composant)
                    g.translate(-offset.x, -offset.y); // permet de recaler la carte en haut à gauche
                    final Graphics2D g2d=(Graphics2D)g; // on a besoin d'accèder à des méthodes spécifiques de Graphics2D
                    g2d.setFont(g2d.getFont().deriveFont(Font.BOLD,12)); // on passe la police actuelle en gras et taille 12 pour afficher les noms de régions
                    for(MapRegion region : regions) { // on parcourt toutes les régions
                            g2d.setPaint(region.color); // on sélectionne la couleur de fond pour tous les dessins qu'on fait après
                            g2d.fill(region.path); // on rempli la forme de la région avec la couleur sélectionnée
                            if ( region==selectedRegion ) { // si la région est sélectionnée
                                    g2d.setColor(SELECTION_COLOR); // on sélectionne la couleur de sélection
                                    g2d.fill(region.path); // on remplit la forme à nouveau : comme la couleur de sélection est transparent, son noir va se combiner avec la couleur de la forme qu'on a remplie juste avant
                            }
                            g2d.setColor(getForeground()); // on utilise la couleur standard du foreground (noir par défaut)
                            g2d.draw(region.path); // on dessine le contour de la forme, pour avoir une bordure
                            Point2D center = computeCenter(region.path);
                            Point2D boundsCenter = new Point2D.Double(region.path.getBounds2D().getCenterX(),region.path.getBounds2D().getCenterY());
                            Point2D loc = getStringLocation(g2d, region.path.getBounds2D(), region.name, SwingConstants.CENTER, SwingConstants.CENTER); // on détermine la position du texte de nom de région
                            g.translate((int)(center.getX()-boundsCenter.getX()), (int)(center.getY()-boundsCenter.getY()));
                            g2d.drawString(region.getName(), (int)loc.getX(), (int)loc.getY()); // on affiche le nom de région
                            g.translate((int)(boundsCenter.getX()-center.getX()), (int)(boundsCenter.getY()-center.getY()));
                    }
                    for(MapRegion region : regions) { // on parcourt toutes les régions
                            g2d.setPaint(region.color); // on sélectionne la couleur de fond pour tous les dessins qu'on fait après
                            g2d.fill(region.path); // on rempli la forme de la région avec la couleur sélectionnée
                            if ( region==selectedRegion ) { // si la région est sélectionnée
                                    g2d.setColor(SELECTION_COLOR); // on sélectionne la couleur de sélection
                                    g2d.fill(region.path); // on remplit la forme à nouveau : comme la couleur de sélection est transparent, son noir va se combiner avec la couleur de la forme qu'on a remplie juste avant
                            }
                            g2d.setColor(getForeground()); // on utilise la couleur standard du foreground (noir par défaut)
                            g2d.draw(region.path); // on dessine le contour de la forme, pour avoir une bordure
                            Point2D center = computeCenter(region.path);
                            Point2D boundsCenter = new Point2D.Double(region.path.getBounds2D().getCenterX(),region.path.getBounds2D().getCenterY());
                            Point2D loc = getStringLocation(g2d, region.path.getBounds2D(), region.name, SwingConstants.CENTER, SwingConstants.CENTER); // on détermine la position du texte de nom de région
                            g.translate((int)(center.getX()-boundsCenter.getX()), (int)(center.getY()-boundsCenter.getY()));
                            g2d.drawString(region.getName(), (int)loc.getX(), (int)loc.getY()); // on affiche le nom de région
                            g.translate((int)(boundsCenter.getX()-center.getX()), (int)(boundsCenter.getY()-center.getY()));
                    }
            }
     
             * @param actionListener
             */
    	public void addRegionSelectionListener(RegionSelectionListener actionListener) { // cette méthode sert à ajouter un écouteur d'évenements de sélection de région
    		regionSelectionListenerList.add(RegionSelectionListener.class, actionListener); // on ajoute l'écouteur au conteneur d'écouteur
    	}
     
    	public void removeRegionSelectionListener(RegionSelectionListener actionListener) { // cette méthode sert à supprimer un écouteur d'évenements de sélection de région
    		regionSelectionListenerList.remove(RegionSelectionListener.class, actionListener); // on retire l'écouteur du conteneur d'écouteur
    	}
     
    	private void fireRegionSelected(MapRegion region) { // cette méthode permet d'envoyer un évenement de sélection de région (qui dit "on a cliqué sur telle région"
    		for(RegionSelectionListener listener : regionSelectionListenerList.getListeners(RegionSelectionListener.class)) { // on parcourt tous les écouteurs stockées dans le conteneur
    			listener.selected(region); // on envoie l'évenement
    		}
    	}
     
    	public static class MapRegion { // cette classe représente une région
     
    		// j'ai limité la notion de région aux attributs suivant :
    		private final Shape path; // une forme (quelconque : ça peut être un rectangle, un cercle, un polygone, une forme complexe comme celle d'une région d'un pays
    		private final Paint color; // une peinture de remplissage (ça peut être une couleur, mais aussi une texture, une photo, etc.)
    		private final String name; // un nom de région
    		private final String data; // un texte de description (on pourrait ici avoir plusieurs attributs : un pour le nombre d'habitant, un pour la superficie, etc, mais pour un POC un texte est suffisant)
    		private final Point2D visualCenter;
     
    		public MapRegion(Shape path, Paint color, String name, String data) { // pour créer une nouvelle région
    			this.path=path;
    			this.color=color;
    			this.name=name;
    			this.data=data;
    			this.visualCenter=MapBox.getVisualCenter(path);
    		} 
     
    		public Point2D getVisualCenter() {
    			return visualCenter;
    		}
     
    		public String getData() { // retourne la description de la région
    			return data;
    		}
     
    		public String getName() { // retourne le nom de la région
    			return name;
    		}
     
    	}
     
    	public static interface RegionSelectionListener extends EventListener { // définit un écouteur d'évenement spécifique pour la sélection de région
     
    		void selected(MapRegion region); // l'évenement est juste la région qu'on a cliquée
     
    	} 
     
    	public static void main(String[] args) { // le programme principal de démo
     
    		JFrame frame = new JFrame(); // on créé une fenêtre
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // pour que l'application s'arrête complètement lorsqu'on ferme la fenêtre
     
    		final MapPanel mapPanel = new MapPanel(); // on créé un panel d'affichage de régions
     
    		// on enregitre 4 régions différentes, leur forme étant créées par les méthode createRegion1, createRegion2, etc... on indique la couleur, le nom, et le texte de description (les paramètres attendus par le constructeur de la classe MapRegion)
    		for(MapRegion region : createRegions(SENEGAL_REGIONS)) {
    			mapPanel.register(region);	
    		}
     
    		// on enregistre un écouteur d'évenement de sélection de régions qui va appeler la méthode selectRegion en lui passant le panel d'affichage de régions et la région cliquée (reçue par l'évenement)
    		mapPanel.addRegionSelectionListener(new RegionSelectionListener() {
     
    			@Override
    			public void selected(MapRegion region) {
    				selectRegion(mapPanel, region);
    			}
     
    		}); 
     
    		frame.add(mapPanel); // on ajoute le panel d'affichage de région à la fenêtre (par défaut il se place au centre)
     
    		frame.pack(); // on demande un dimensionnement automatique (ça va utiliser le preferredSize calculée dans MapRegiion, parce que c'est comme ça que fonctionne le LayoutManager affectée par défaut au contentPane d'une JFrame à la création)
    		frame.setLocationRelativeTo(null); // on centre la fenêtre
    		frame.setVisible(true); // on affiche la fenêtre
     
    	}
     
    	private static void selectRegion(MapPanel mapPanel, MapRegion region) { // cette méthode permet de réagir au clic sur une région
    		mapPanel.select(region); // on marque la région cliquée comme sélectionnée
    		showData(region.getName(), region.getData()); // on affiche les informations 
    		mapPanel.select(null); // comme la fenêtre d'affichage des informations est bloquante, on revient ici seulement quand elle est fermée, donc lorsqu'elle est fermée, on dit que la région n'est plus sélectionnée
    	}
     
    	private static void showData(String name, String data) { // on affiche les informations dans un dialogue modal (bloquant l'UI derrière = tant qu'on clique pas sur OK, on ne peut plus rien faire dans la JFrame)
    		JOptionPane.showMessageDialog(null, data, "Région "+name, JOptionPane.INFORMATION_MESSAGE);
    	}
     
    	// https://www.amcharts.com/svg-maps/
    	private final static String[][] SENEGAL_REGIONS = {
    			{"M37.765,531.05l0.498,0.462l0.396,4.828l0.854,1.479l1.048,2.896l0.647,2.635l0.117,1.731l0.252,0.339l0.951,0.303l0.198,1.3l-0.174,1.208l-0.482,0.444l-1.468,0.342l-0.46,0.506l-0.025,0.293l0.373,0.041l-0.022,0.732l-0.493,2.504l1.133,0.989l-0.003,1.556l-0.704,3.099l0.673,1.922l-1.87,1.126l0,0l-1.386,-2.947l-3.44,-4.147l-5.689,-4.293l-1.219,-0.579l-1.316,-0.423l-0.332,0.277l-5.067,-2.192l-2.771,-0.719l-2.769,-0.034l-2.541,0.625l-1.006,0.643l-0.537,0.866l0.134,0.958l0.578,0.281l0.556,-0.117l0.068,0.57l-0.754,0.65l0.488,0.955l-0.111,0.336l-0.507,-0.118l-0.283,-0.586l-0.334,0.253l0.219,0.142l0.028,0.31l-0.274,0.112l0.63,0.366l0.137,0.141l0.411,0.141l-0.082,0.563l-0.987,0.453l-0.233,0.756l0.397,0.678l-0.384,0.451l-0.325,-0.85l-0.744,-0.531l0.109,-0.576l-0.466,-0.612l-1.069,-0.191l-0.137,-0.506l-0.295,0.398l-0.299,-0.174l-0.42,0.226l0.097,-1.048l-0.837,-0.811l0.384,-0.508l-1.398,-0.93l-0.274,-0.845l-0.658,0.028l-0.055,-0.282l-0.521,-0.112l-0.082,-0.761l-1.124,-1.183l-1.48,-0.282l0.384,-1.183l0.676,0.366l0.229,-0.311l0.736,0.07l0.113,-0.492l1.299,0.05l0.675,-0.275l0.74,-0.93l1.042,0.451l2.775,-0.535l7.204,-2.876l0.384,-0.366l0.247,0.142l0.11,-0.339l1.919,-0.423l0.274,-0.395l7.375,-3.1L37.765,531.05z","Dakar","#5BC4ED","Blahblah" },
    			{"M101.156,561.749l-0.571,-1.517l-4.896,0.453l-2.245,-0.642l-0.039,-0.425l-1.345,-0.921l-0.985,-1.402l0.123,-0.323l-0.641,-0.172l-0.307,-0.748l-0.758,0.179l-0.334,-0.391l0.255,-0.972l-0.678,-0.167l0.108,-1.629l2.549,-3.529l1.178,-0.517l0.562,-1.851l-0.453,-0.148l-0.087,-0.836l0.387,-0.491l0.492,-2.009l-5.154,-4.347l0.549,-1.286l1.885,-1.671l-0.335,-2.032l-1.113,-1.494l-1.591,-1.298l-3.055,-3.92l0.522,-0.628l2.19,-2.004l1.752,-0.868l4.336,-0.918l6.312,-1.922l0.526,-0.213l-0.102,-0.691l3.128,-0.163l2.473,-1.621l2.85,-0.82l5.121,0.242l0.301,0.322l0.576,-0.167l1.446,0.347l0.705,-1.018l0.32,0.27l-0.296,0.895l1.931,0.601l0.415,-0.523l0.712,-0.047l0.623,0.549l-0.021,0.818l4.506,1.212l2.633,1.171l0.746,0.513l-0.305,0.467l0.345,1.501l1.103,-0.371l0.356,0.455l0.926,0.102l4.052,-1.1l0,0l2.456,-0.023l3.048,0.528l2.132,-0.416l1.695,0.13l1.911,-0.918l1.805,-0.453l2.67,0.861l2.022,1.057l0.676,-1.497l0.692,-0.648l3.841,0.165l0.17,-0.539l1.366,-1.081l1.148,-0.332l1.705,0.351l0.087,0.398l-0.343,0.321l6.167,-0.918l0.205,0.542l1.163,1.139l3.894,1.746l1.165,1.525l0.345,1.341l1.294,2.242l1.261,1.023l1.805,-0.166l1.551,-0.873l2.435,-3.345l0.776,-0.437l0.686,0.043l0.573,0.342l0.349,1.181l1.903,2.06l0.785,1.393l0.018,0.821l-0.515,0.91l2.437,1.114l1.623,0.422l-0.403,0.444l5.955,3.67l4.17,-1.512l1.243,-0.148l2.12,0.467l2.973,1.159l0.176,0.649l-0.244,1.761l1.441,0.823l0,0l-0.847,0.873l-2.024,4.314l-0.615,1.64l-0.219,1.562l-4.985,1.1l-4.162,3.498l-0.851,-0.029l0,0l-0.577,-0.831l-0.236,-1.324l-0.996,-0.894l-0.521,1.345l-0.461,-0.035l-2.089,-0.716l0.147,-1.709l-1.586,0.604l-1.477,-1.219l0.244,-1.572l-1.109,-0.103l-1.174,0.804l-1.033,-0.298l-1.137,0.56l-0.379,0.371l-0.135,2.343l-2.738,-1.656l-2.284,-0.796l-2.333,-1.597l-2.09,-1.002l-1.09,0.645l-0.757,3.952l0.605,4.495l-0.189,1.836l0.247,0.926l-1.11,3.352l-1.349,1.504l-3.079,2.237l-1.81,0.802l-2.543,0.542l-3.486,2.019l-4.618,0.01l-1.254,0.341l-2.139,-0.575l-1.909,-0.725l-0.661,-1.019l-0.07,-1.564l-2.863,0.274l-0.562,0.953l-2.53,-0.162l-0.626,0.204l-2.397,-0.343l-2.45,-0.957l-0.55,0.239l-0.134,-0.588l-0.388,-0.161l-0.844,0.316l-1.137,-0.398l0.008,-0.694l-0.307,-0.19l-1.234,0.303l-2.993,-1.542l-0.784,0.719l-3.576,-0.318l-1.371,0.026l-0.78,0.363l-1.898,-0.229l-0.718,-0.582l-1.674,-0.236l-0.647,-0.732l-0.966,-0.263l-0.253,-0.953l-1.42,-0.418l-1.699,0.914l-0.655,-0.431l-1.133,0.601l-0.639,-0.092l-0.724,0.366l-3.229,-0.004l-1.548,0.725l-1.672,-0.574L101.156,561.749z","Diourbel","#E6C199","Blahblah"},
    			{"M87.786,656.963l0.494,0.981l0.411,0.141l0.027,0.392h0.521l0.542,0.617l0.527,0.112l-0.274,0.364l-1.207,-0.364l-1.289,-2.103L87.786,656.963zM89.239,653.823l0.603,0.981l-0.411,0.729l-0.713,0.477L89.239,653.823zM101.156,561.749l2.84,-0.25l1.672,0.574l1.548,-0.725l3.229,0.004l0.724,-0.366l0.639,0.092l1.133,-0.601l0.655,0.431l1.699,-0.914l1.42,0.418l0.253,0.953l0.966,0.263l0.647,0.732l1.674,0.236l0.718,0.582l1.898,0.229l0.78,-0.363l1.371,-0.026l3.576,0.318l0.784,-0.719l2.993,1.542l1.234,-0.303l0.307,0.19l-0.008,0.694l1.137,0.398l0.844,-0.316l0.388,0.161l0.134,0.588l0.55,-0.239l2.45,0.957l2.397,0.343l0.626,-0.204l2.53,0.162l0.562,-0.953l2.863,-0.274l0.07,1.564l0.661,1.019l1.909,0.725l2.139,0.575l1.254,-0.341l4.618,-0.01l3.486,-2.019l2.543,-0.542l1.81,-0.802l3.079,-2.237l1.349,-1.504l1.11,-3.352l-0.247,-0.926l0.189,-1.836l-0.605,-4.495l0.757,-3.952l1.09,-0.645l2.09,1.002l2.333,1.597l2.284,0.796l2.738,1.656l0.135,-2.343l0.379,-0.371l1.137,-0.56l1.033,0.298l1.174,-0.804l1.109,0.103l-0.244,1.572l1.477,1.219l1.586,-0.604l-0.147,1.709l2.089,0.716l0.461,0.035l0.521,-1.345l0.996,0.894l0.236,1.324l0.577,0.831l0,0l-0.067,2.552l0.325,2.455l1.266,1.433l1.04,0.379l-1.906,1.067l-0.431,-0.48l-6.715,5.424l0.095,2.646l-0.763,0.61l-2.875,-0.879l-0.84,0.094l-0.304,0.837l0.745,0.931l-0.649,0.241l0,0l-1.737,-1.141l-2.433,0.066l-0.815,0.382l-0.17,0.798l-0.556,0.765l-0.455,2.516l-0.798,0.951l-1.281,0.552l-2,0.11l-0.91,1.705l-1.458,5.115l-0.57,0.083l-8.556,-0.188l0.045,-6.605l-0.396,-0.67l-1.307,-0.161l-0.671,1.326l-0.583,0.39l-0.578,-0.251l-0.597,-0.923l-0.946,-0.716l-1.315,-0.328l-1.706,1.493l-0.209,1.111l-0.806,0.861l-1.58,0.275l-0.109,1.733l-1.38,1.467l0.161,0.858l-0.498,0.461l-1.748,0.733l-1.109,0.059l-1.03,-0.563l-2.813,-0.504l-1.461,1.035l-2.021,0.669l-2.383,-0.255l-2.347,0.226l-0.97,0.545l-0.797,1.109l-0.517,2.148l-5.006,-0.493l0.129,0.277l-0.792,0.529l0.223,0.951l-1.006,1.354l-0.434,0.221l-1.314,-0.732l-0.415,0.641l-0.395,-0.128l-0.613,0.673l-1.105,0.467l-0.227,0.771l-1.322,0.603l-0.157,0.346l-2.119,-0.27l-0.476,0.432l-0.603,2.141l-0.301,0.192l0.219,0.442l-0.958,0.339l0.864,0.556l-0.112,0.584l-0.269,0.329l-0.417,-0.002l-0.205,-0.535l-0.455,0.086l0.394,1.368l-0.268,1.526l1.442,1.03l-0.506,0.424l-0.645,-0.084l-0.145,0.344l0.476,0.608l0.4,-0.044l-0.143,0.383l-0.948,-0.456l-0.191,0.707l-0.486,-0.234l-0.207,0.981l-0.725,-0.011l0.531,0.712l0.902,-0.247l2.023,0.125l1.718,-0.565l2.958,0.212l1.668,1.298l2.152,0.797l3.143,2.66l0.424,2.683l-0.096,2.612l-0.519,0.822l-2.755,1.785l-0.305,0.999l-0.779,0.838l-0.232,1.211l0.121,0.356l1.043,0.692l0.171,-0.22l2.674,-0.225l1.575,0.481l-0.323,1.577l1.468,0.129l-0.066,1.562l0.704,1.019l0.529,5.412l-0.534,0.35l-0.762,2.002l-0.009,1.001l-0.396,0.21l-1.125,2.019l-1.84,-0.12l-0.462,0.224l0.868,0.973l-0.663,3.465l1.973,1.106l0.441,0.901l4.295,3.814l0.555,-0.552l0.49,-0.012l0.227,0.302l0.489,5.375l0.423,1.658l0.405,0.987l1.341,1.282l-0.108,0.908l1.295,0.161l-0.258,1.301l-1.413,0.706l0.102,0.678l1.119,0.649l-0.285,0.833l-0.802,0.685l0,0l-34.325,-0.067l-0.8,0.229l-4.728,-0.235l-0.091,-0.737l-0.425,-0.168l-0.91,0.536l-0.762,-1.555l-1.691,-1.316l0.174,-0.617l-0.92,-1.152l-1.943,-0.702l-1.801,-2.229l-0.533,-1.262l-0.33,-0.018v-2.804l0.502,-1.543l-1.569,-2.552l-0.615,-0.229l-2.569,-2.66l-0.218,0.253l-0.932,-0.141l-0.795,-1.458l-1.551,-0.82l-2.824,-0.737l-0.45,-0.665l-0.329,1.044l-0.329,0.141l-0.411,-6.201l0.384,-2.722l0.274,1.6l-0.247,2.554l0.192,1.739l0.322,0.337l-0.151,-9.663l-0.845,-0.227l-0.204,-0.662l-0.959,-11.684l0,0l0.931,-1.238l1.15,-0.06l-0.09,-2.131l-1.389,-1.517l0.094,-0.608l-2.238,-1.448l-0.267,-0.388l0.05,-0.607l0.657,-0.972l0.499,-0.145l0.871,0.331l1.16,-0.423l0.553,0.107l0.013,-0.59l-0.98,-1.421l0.595,-0.832l0.802,-0.249l0.792,-1.054l0.708,-0.092l1.003,-1.167l0.004,-1.377l-1.46,-0.77l-0.622,-0.878l0.301,-0.801l-0.372,-1.316l1.236,-0.518l0.921,-0.867l-0.577,0.014l-0.482,-0.691l2.542,-3.719l0.173,-0.943l-0.326,-4.112l0.507,-4.238l0.529,-1.072l0.213,-1.585l0.659,-0.775l4.101,0.24l1.414,-0.302l1.744,-1.875l2.222,-0.907l4.318,-3.648l1.495,-2.658l0.917,-3.637l-0.046,-0.735l0.945,-1.821L101.156,561.749z","Fatick","#E66166","Blahblah"},
    			{"M436.241,758.746L436.366,758.488L433.834,757.064L433.188,756.2L433.196,755.045L433.823,754.397L436.054,753.229L437.688,752.589L439.615,752.334L438.094,750.467L436.935,746.009L437.267,745.375L436.9,744.632L437.797,743.222L438.415,742.973L437.432,742.186L437.177,741.608L438.346,741.049L438.43,740.762L437.791,739.771L435.879,739.787L433.278,738.906L433.076,738.022L433.883,736.764L431.354,735.473L431.229,734.772L431.606,733.561L430.287,732.575L431.249,732.466L432.229,732.897L432.981,732.571L434.097,731.336L433.8,730.729L433.84,729.697L432.748,729.004L432.108,727.84L431.918,726.786L430.497,725.452L430.216,725.423L429.84,726.107L429.542,726.131L429.045,724.536L427.873,723.509L427.33,721.956L425.228,721.618L424.793,721.213L424.962,720.635L425.191,720.889L425.65,720.814L426.527,719.958L427.207,719.877L428.092,719.13L427.776,718.63L428.005,718.338L427.79,717.258L429.13,717.295L430.043,716.386L429.993,716.955L430.545,717.033L430.838,716.87L430.936,716.11L431.684,715.827L432.516,716.862L431.973,717.289L433.055,717.34L433.229,716.888L433.608,716.814L434.358,717.342L435.257,716.759L438.466,718.308L440.044,719.521L440.811,719.194L441.987,717.208L442.955,716.559L443.213,715.843L444.01,716.644L444.859,716.5L445.967,716.775L446.233,716.343L446.217,715.508L446.927,715.637L448.11,715.371L449.085,714.91L449.357,714.264L450.032,714.926L451.2,714.727L451.774,715.413L453.147,714.205L454.095,715.012L455.408,714.35L454.856,715.776L455.058,716.039L455.936,716.05L456.503,716.729L456.879,716.669L456.733,717.209L457.151,718.149L457.736,717.833L458.244,717.088L458.713,717.736L460.365,718.662L460.596,719.947L461.305,719.601L462.102,720.16L461.804,720.906L462.818,721.155L463.392,721.667L464.531,720.812L465.366,722.559L466.896,722.828L467.163,722.242L466.296,721.443L466.393,720.726L466.881,720.562L467.728,720.874L467.053,719.956L467.018,719.496L468.411,719.337L468.226,718.695L468.468,718.582L469.374,718.885L470.728,718.759L470.681,717.065L471.63,716.801L472.012,717.173L472.318,716.999L471.919,715.934L472.255,714.823L473.066,715.231L473.149,714.602L473.652,714.465L474.748,714.826L475.174,715.277L475.658,715.14L476.436,714.623L476.45,714.273L476.096,713.999L476.138,713.305L477.873,713.126L478.315,712.078L479.435,711.748L479.293,710.538L480.7,709.612L480.578,708.637L481.295,708.76L480.93,708.483L481.152,708.119L480.43,707.66L480.876,706.914L480.629,706.59L480.856,706.296L480.581,706.232L480.5,704.901L481.45,705.034L482.168,704.821L482.558,704.167L483.128,704.573L483.933,704.189L484.423,703.616L484.422,703.056L484.938,702.7L487.457,703.189L487.326,702.908L488.413,702.57L488.607,701.298L489.453,701.559L489.762,702.432L490.143,702.107L490.983,702.086L491.627,703.194L492.312,703.746L493.033,703.97L494.08,703.418L494.591,703.843L495.372,703.375L495.724,703.83L496.082,703.803L496.271,703.138L496.718,702.781L497.641,702.549L498.663,702.836L499.005,702.6L499.004,702.024L499.754,701.521L500.422,698.96L501.779,698.273L501.664,697.261L502.055,697.257L502.158,696.799L503.883,695.459L505.426,695.05L506.133,693.747L507.364,693.969L509.977,692.921L512.635,694.615L513.679,696.241L514.118,696.377L515.061,696.07L515.204,695.785L515.197,694.398L516.395,692.927L516.758,690.427L517.857,690.461L518.354,690.761L520.261,690.604L521.907,691.046L522.393,690.585L523.347,690.506L524.34,689.945L525.292,688.337L525.178,687.969L524.422,687.316L521.46,682.663L521.513,681.364L521.261,680.836L521.834,679.823L522.414,679.623L522.721,678.026L522.526,676.515L523.334,675.988L524.808,676.824L525.168,676.685L527.373,677.727L527.723,678.168L531.182,680.144L532.831,680.693L533.196,681.887L533.877,682.663L534.968,682.949L536.757,684.615L540.013,685.19L541.836,686.412L544.44,685.043L544.069,686.995L544.467,687.948L544.194,689.029L543.779,689.385L544.233,690.867L545.594,691.102L546.76,689.631L547.762,689.626L548.155,689.182L548.597,689.148L550.823,687.024L551.638,685.584L552.348,685.454L553.286,685.745L554.098,685.434L554.482,684.973L556.607,684.6L557.396,683.995L558.344,683.729L558.344,683.729L559.935,684.019L560.842,685.661L562.616,686.896L563.392,688.757L563.863,688.786L564.337,689.233L564.44,690.157L563.972,691.117L566.749,691.104L567.169,690.836L567.373,689.347L567.854,688.619L568.614,688.197L569.933,688.197L570.173,687.932L570.841,685.307L572.429,683.264L572.115,682.237L572.289,681.168L573.227,680.503L574.094,680.321L576.739,680.688L577.708,681.804L577.762,683.056L580.349,683.08L582.37,682.426L584.339,682.671L584.438,684.183L583.254,685.598L585.263,685.94L586.732,685.322L587.266,685.415L587.542,685.927L587.488,688.577L588.292,689.978L588.037,691.114L589.378,691.628L590.277,692.897L592.197,693.143L592.859,694.008L592.64,694.797L593.449,695.735L594.606,696.347L594.585,696.965L592.797,699.299L592.655,701.12L592.892,701.894L593.342,702.299L596.08,702.423L596.647,702.63L596.887,703.036L596.922,704.246L596.571,705.082L595.056,706.457L595.261,707.426L596.642,707.853L597.23,710.232L598.643,710.981L599.184,712.322L602.441,712.471L604.217,714.204L604.154,715.078L603.203,716.239L603.205,716.672L603.869,717.098L604.785,718.383L605.557,718.675L605.596,719.491L605.178,720.337L606.635,720.743L607.068,721.3L607.03,722.106L605.866,722.588L605.148,722.511L605.201,723.156L606.048,724.093L605.85,724.858L606.212,724.808L606.79,724.984L607.495,725.696L607.932,725.54L608.185,724.708L607.879,723.187L608.162,722.875L610.01,723.153L610.948,724.297L611.064,726.393L611.995,728.346L611.575,729.175L610.581,729.519L607.625,730.226L607.347,730.109L607.216,729.507L606.788,729.801L606.662,731.112L607.905,731.491L607.92,732.279L606.642,733.503L606.347,734.664L607.238,736.565L606.904,737.154L605.761,737.861L606.543,738.609L606.456,739.764L607.334,739.675L607.808,739.234L608.479,739.427L607.897,741.155L608.581,742.442L608.404,744.565L607.732,745.123L606.949,745.175L607.869,745.639L608.901,747.166L608.318,748.197L608.759,748.519L609.741,748.499L610.282,749.638L608.002,750.065L604.283,749.984L604.329,752.931L603.493,753.286L602.943,752.522L602.96,754.491L602.095,754.975L601.911,755.366L602.316,756.225L603.289,756.389L604.398,756.144L605.355,757.515L605.482,758.776L605.986,759.09L605.953,760.108L605.489,760.766L604.491,761.19L604.434,761.765L604.55,762.167L606.039,763.093L606.355,763.705L605.806,765.362L604.691,766.34L602.604,766.184L602.08,767.863L602.348,768.173L602.875,767.592L603.639,767.635L604.053,768.207L604.077,769.828L605.019,770.117L605.253,770.01L605.23,769.011L605.563,768.39L606.116,768.268L606.637,768.725L607.921,768.724L607.99,769.307L607.542,770.135L608.528,770.322L608.779,770.746L608.454,773.359L609.059,774.089L608.808,773.107L609.585,771.538L610.171,771.523L610.749,771.881L611.051,772.683L611.19,774.113L610.824,773.886L610.479,774.547L611.297,775.107L611.443,776.214L610.631,776.31L610.144,777.359L609.162,777.405L609.334,778.353L610.003,779.173L609.667,780.8L608.562,781.128L608.158,780.874L606.538,780.889L604.483,779.007L603.045,778.583L601.974,778.724L600.996,778.375L599.994,778.41L599.073,777.724L596.687,777.871L587.672,778.8L586.587,779.584L585.733,779.476L584.976,779.881L583.625,779.204L580.934,779.824L579.858,780.196L577.091,782.517L575.439,782.473L574.068,783.648L571.793,783.655L570.201,784.162L569.404,783.205L567.479,783.063L567.355,782.61L566.762,782.162L565.875,782.789L565.621,782.493L563.883,782.326L562.234,783.055L562.078,782.588L560.778,781.505L560.626,780.862L559.57,780.761L557.965,780.024L557.163,777.792L550.905,781.693L549.839,782.067L549.227,781.826L546.125,782.438L545.645,782.261L545.279,781.633L544.129,781.153L543.161,779.957L541.811,779.904L541.074,779.341L540.418,779.887L539.604,779.835L536.034,781.11L535.598,781.421L534.938,782.959L534.133,783.933L532.426,784.342L532.023,785.06L529.854,786.117L529.555,786.742L528.453,786.674L526.56,787.216L525.044,786.975L524.428,787.599L523.567,787.854L522.732,787.454L520.088,788.505L519.512,789.154L518.217,789.096L511.991,792L511.094,789.15L510.271,788.607L509.211,786.213L508.616,785.689L508.571,785.18L507.207,784.194L505.967,784.347L504.752,784.084L502.848,782.74L498.551,781.922L497.567,782.267L496.55,782.223L493.848,785.016L491.516,786.01L490.51,784.323L489.828,783.934L489.573,782.819L489.804,781.943L488.249,782.368L487.059,781.45L486.712,780.149L485.548,779.305L483.709,778.965L481.432,779.474L479.338,778.883L472.32,779.423L471.771,779.245L472.708,777.032L472.916,776.252L472.709,776.037L471.641,775.345L471.015,775.688L469.078,774.409L468.135,774.947L466.931,775.103L466.146,774.672L465.597,773.953L463.975,773.374L463.847,772.982L464.968,771.584L464.772,771.119L463.883,771.104L460.681,769.697L460.013,768.604L460.413,767.764L459.288,767.371L458.339,767.806L455.829,768.234L454.089,769.088L453.709,769.869L454.327,770.451L454.236,771.333L454.53,771.929L453.871,775.128L452.177,775.228L451.43,776.054L449.284,775.554L448.505,774.683L445.477,774.372L444.758,774.766L442.614,774.351L441.946,773.521L442.191,771.059L441.752,769.309L442.124,768.728L443.141,768.067L443.212,766.423L444.266,765.037L444.003,763.533L444.141,762.584L443.439,761.479L443.734,760.337L442.243,759.38L442.62,758.559L442.425,758.352L441.181,758.314L440.907,759.077L439.784,759.437L439.374,760.071L439.111,759.757L438.47,759.897L437.896,759.096L436.971,759.12L436.981,758.533z","Kédougou","#97BF0D","Blahblah"},
    			{"M209.269,541.355L210.94,541.137L213.924,543.528L216.257,547.252L219.085,550.507L221.321,552.711L226.133,555.608L248.748,559.858L249.405,557.314L259.943,550.51L263.974,555.259L265.855,555.262L265.855,555.262L268.744,558.479L270.394,558.984L276.059,562.574L278.441,562.576L279.395,561.592L281.102,561.322L285.524,561.387L285.74,562.577L286.126,562.739L286.945,562.644L287.424,562.104L288.297,562.147L290.662,563.005L290.696,563.439L290.696,563.439L290.115,564.711L287.991,564.873L287.417,574.281L287.665,577.371L287.558,577.886L287.211,578.072L286.512,591.126L288.114,592.979L290.87,595.355L290.941,595.761L292.014,607.257L291.277,611.87L291.95,612.095L292.324,612.591L291.267,614.056L292.176,620.9L291.537,621.625L289.378,622.908L291.886,623.117L290.159,627.814L283.081,632.555L281.418,633.33L278.632,640.021L270.522,640.831L268.648,643.296L267.646,644.15L267.688,644.551L267.232,645.003L267.232,645.003L267.23,644.997L267.23,644.997L263.636,643.076L261.018,642.221L256.308,641.69L254.234,642.23L253.332,642.166L244.877,639.062L239.006,641.108L229.772,646.854L227.39,646.872L225.939,645.369L224.171,644.12L222.464,643.542L219.792,643.197L217.575,643.475L214.883,644.448L212.935,645.405L211.801,646.339L211.739,646.813L211.128,647.093L211.128,647.093L211.127,646.436L209.69,646.307L208.585,643.978L208.424,643.451L209.179,643.441L209.164,641.896L207.743,641.916L207.279,641.584L203.207,641.597L203.102,641.009L202.589,640.802L202.067,641.145L201.971,641.887L200.295,641.871L198.297,640.916L198.218,639.96L197.23,640.155L193.755,638.623L192.989,638.812L192.583,639.312L191.364,641.099L191.133,641.975L189.868,643.181L189.562,643.83L188.594,644.293L187.983,644.21L186.24,642.652L185.257,641.292L185.49,641.196L185.34,640.606L185.057,640.41L184.555,640.6L183.173,639.374L181.94,638.82L181.477,638.128L181.559,637.584L182.418,636.518L180.947,635.145L182.536,633.739L183.699,631.379L183.584,630.455L181.747,628.212L181.043,626.053L180.598,625.616L179.729,625.417L178.195,625.982L176.429,624.96L175.353,623.829L173.379,623.306L173.325,622.485L173.9,620.592L173.484,619.577L173.775,618.912L173.386,618.347L173.219,616.365L172.228,616.357L172.089,616.11L170.966,615.851L167.769,613.516L167.753,612.887L166.597,612.721L166.039,610.644L167.082,609.702L166.71,608.501L167.028,603.859L170.044,597.054L172.761,596.996L175,596.403L175.823,592.541L176.122,592.132L182.579,592.411L182.972,590.456L183.217,585.912L182.11,578.613L182.948,573.476L183.798,573.23L184.487,571.622L184.487,571.622L185.136,571.381L184.391,570.45L184.695,569.613L185.535,569.52L188.41,570.398L189.173,569.788L189.078,567.142L195.792,561.718L196.223,562.198L198.129,561.131L197.09,560.752L195.824,559.319L195.5,556.864L195.566,554.313L195.566,554.313L196.417,554.342L200.579,550.844L205.564,549.744L205.783,548.183L206.398,546.543L208.422,542.229z","Kédougou","#64A1D3","Blahblah"},
    			{"M184.487,571.622L183.798,573.23L182.948,573.476L182.11,578.613L183.217,585.912L182.972,590.456L182.579,592.411L176.122,592.132L175.823,592.541L175,596.403L172.761,596.996L170.044,597.054L167.028,603.859L166.71,608.501L167.082,609.702L166.039,610.644L166.597,612.721L167.753,612.887L167.769,613.516L170.966,615.851L172.089,616.11L172.228,616.357L173.219,616.365L173.386,618.347L173.775,618.912L173.484,619.577L173.9,620.592L173.325,622.485L173.379,623.306L175.353,623.829L176.429,624.96L178.195,625.982L179.729,625.417L180.598,625.616L181.043,626.053L181.747,628.212L183.584,630.455L183.699,631.379L182.536,633.739L180.947,635.145L182.418,636.518L181.559,637.584L181.477,638.128L181.94,638.82L183.173,639.374L184.555,640.6L185.057,640.41L185.34,640.606L185.49,641.196L185.257,641.292L186.24,642.652L187.983,644.21L188.594,644.293L189.562,643.83L189.868,643.181L191.133,641.975L191.364,641.099L192.583,639.312L192.989,638.812L193.755,638.623L197.23,640.155L198.218,639.96L198.297,640.916L200.295,641.871L201.971,641.887L202.067,641.145L202.589,640.802L203.102,641.009L203.207,641.597L207.279,641.584L207.743,641.916L209.164,641.896L209.179,643.441L208.424,643.451L208.585,643.978L209.69,646.307L211.127,646.436L211.128,647.093L211.128,647.093L211.13,647.828L210.086,647.684L208.878,649.028L206.818,652.568L205.434,656.935L204.316,662.887L138.351,662.809L138.351,662.809L139.153,662.124L139.438,661.291L138.32,660.642L138.218,659.964L139.631,659.258L139.889,657.957L138.594,657.796L138.702,656.888L137.361,655.605L136.957,654.618L136.533,652.96L136.044,647.585L135.817,647.283L135.327,647.295L134.772,647.847L130.478,644.032L130.037,643.131L128.064,642.024L128.727,638.56L127.859,637.587L128.322,637.363L130.162,637.483L131.287,635.465L131.683,635.255L131.692,634.254L132.454,632.252L132.988,631.902L132.458,626.49L131.754,625.472L131.821,623.91L130.353,623.781L130.676,622.204L129.101,621.723L126.426,621.947L126.255,622.167L125.212,621.475L125.092,621.118L125.324,619.907L126.103,619.069L126.407,618.07L129.163,616.285L129.681,615.463L129.777,612.851L129.354,610.168L126.211,607.508L124.059,606.711L122.391,605.413L119.433,605.201L117.715,605.767L115.692,605.642L114.79,605.889L114.259,605.177L114.983,605.188L115.19,604.206L115.677,604.44L115.868,603.733L116.816,604.189L116.959,603.807L116.559,603.851L116.083,603.242L116.229,602.898L116.873,602.982L117.379,602.559L115.938,601.528L116.205,600.002L115.812,598.634L116.267,598.548L116.471,599.083L116.888,599.085L117.156,598.756L117.268,598.172L116.404,597.616L117.362,597.277L117.143,596.835L117.444,596.643L118.046,594.502L118.522,594.07L120.642,594.34L120.799,593.994L122.121,593.392L122.348,592.621L123.453,592.154L124.065,591.481L124.46,591.609L124.875,590.969L126.189,591.701L126.623,591.48L127.629,590.127L127.407,589.176L128.198,588.646L128.069,588.369L133.076,588.862L133.593,586.714L134.39,585.604L135.36,585.06L137.707,584.834L140.09,585.089L142.11,584.42L143.571,583.385L146.385,583.889L147.415,584.451L148.524,584.393L150.271,583.659L150.77,583.198L150.608,582.34L151.988,580.873L152.098,579.14L153.678,578.864L154.483,578.003L154.693,576.892L156.398,575.398L157.714,575.727L158.66,576.442L159.256,577.365L159.834,577.616L160.417,577.227L161.089,575.9L162.396,576.062L162.792,576.731L162.748,583.337L171.303,583.524L171.874,583.441L173.332,578.326L174.242,576.621L176.242,576.511L177.522,575.959L178.321,575.008L178.775,572.492L179.332,571.728L179.502,570.93L180.317,570.548L182.75,570.481z","Kaolack","#E09C63","Blahblah"},
    			{"M264.066,677.539L265.659,677.48L267.718,679.302L270.44,680.502L272.275,680.634L274.752,680.357L275.896,682.661L277.734,684.717L280.076,686.107L284.685,688.091L285.86,688.09L286.177,687.853L288.799,688.263L291.619,687.378L294.365,685.876L296.745,689.419L298.124,690.796L299.734,691.553L304.313,692.129L306.549,695.139L308.189,696.38L310.403,697.827L314.398,699.283L315.376,699.5L319.386,698.486L322.729,698.526L323.785,698.258L324.558,699.615L326.572,700.735L328.953,700.517L331.14,699.605L334.48,700.61L335.97,699.936L336.682,699.985L337.982,698.453L338.438,697.416L338.452,695.515L337.739,694.665L338.515,694.104L339.579,693.746L340.167,694.408L341.615,694.12L342.397,693.04L343.342,693L343.272,693.682L345.805,694.027L345.838,693.339L349.313,693.078L354.559,690.039L360.136,690.615L362.965,690.153L365.662,688.818L367.071,687.502L369.486,683.665L370.233,680.75L370.28,678.253L369.926,677.686L367.878,676.144L365.911,672.445L363.61,670.923L363.61,670.923L364.187,670.85L366.309,671.583L366.251,669.672L367.345,667.288L369.452,667.74L370.666,667.493L370.923,668.218L369.889,669.687L369.796,671.531L368.789,673.852L369.213,675.212L370.095,675.355L372.379,673.403L375.523,674.184L377.846,675.454L377.281,676.664L375.431,677.612L373.876,678.798L373.896,679.763L374.605,680.525L374.524,682.059L373.79,683.232L372.283,684.591L372.799,684.955L375.124,685.014L380.145,683.889L381.811,683.805L382.156,684.068L382.085,685.047L380.942,685.822L379.151,688.084L379.576,688.92L382.112,688.059L382.969,687.909L383.15,688.158L381.782,691.519L380.575,692.727L380.688,693.282L381.814,694.57L384.564,694.148L385.584,695.024L384.868,696.838L385.011,697.604L385.787,698.038L386.584,698.035L387.236,697.892L387.702,697.421L388.104,697.765L388.146,698.329L388.585,698.358L388.458,698.653L388.931,699.415L388.46,699.213L388.307,700.05L388.691,699.892L389.208,700.156L389.206,700.685L389.666,700.97L389.249,701.135L389.262,702.223L389.018,701.605L388.496,701.639L387.9,702.134L388.839,702.317L388.983,702.596L388.604,703.058L388.886,703.286L388.611,703.947L388.074,703.959L387.832,704.289L388.2,704.45L387.65,704.974L387.848,705.339L388.477,705.239L388.491,705.542L388.776,705.58L388.687,706.03L388.325,705.76L388.172,705.91L388.32,706.368L388.962,706.504L389.172,706.914L388.781,707.338L388.165,706.855L387.938,707.632L388.563,707.661L388.666,708.014L387.801,708.284L387.715,708.951L387.987,709.102L388.267,708.852L388.859,709.268L389.064,709.032L390.035,709.422L389.901,709.733L389.538,709.608L389.43,709.91L389.755,710.239L389.451,710.284L389.62,710.586L389.369,710.844L389.735,711.243L390.061,711.146L390.384,711.83L390.388,711.412L390.928,711.443L391.114,711.918L390.766,712.298L391.266,712.896L390.98,713.108L391.036,713.852L391.786,712.894L392.533,713.036L392.444,713.357L391.903,713.152L391.887,713.565L392.28,713.787L392.045,714.309L391.605,714.521L391.622,715.482L391.93,715.856L392.398,716.028L392.458,715.652L393.139,715.928L393.326,715.66L393.155,715.29L392.982,714.92L393.66,714.725L394.606,715.615L393.623,716.479L393.882,716.631L393.711,717.055L393.973,717.16L394.594,716.657L395.299,717.468L395.298,717.712L395.107,717.817L394.792,718.174L395.72,718.514L395.796,718.891L396.198,718.419L396.266,719.016L396.52,718.705L397.407,718.556L397.502,719.665L396.384,720.044L396.862,720.391L396.287,720.508L396.023,721.767L396.385,721.62L396.586,722.084L397.811,721.022L398.93,721.998L398.61,723.023L397.652,723.58L398.514,724.545L398.431,725.315L398.924,725.503L399.479,725.135L399.482,725.806L398.179,726.093L397.403,727.089L397.979,728.022L399.042,728.077L398.844,727.615L399.186,727.557L399.728,728.307L399.048,729.403L398.245,729.293L398.796,730.24L398.876,731.492L399.857,731.665L401.18,732.87L402.136,732.718L402.724,732.922L402.233,734.284L402.74,734.757L401.751,734.785L401.615,735.163L403.643,736.78L403.929,737.6L403.363,738.049L402.641,737.487L401.82,737.293L401.235,737.288L401.107,737.647L402.147,738.091L402.346,739.138L400.989,740.058L401.349,742.018L402.658,742.121L402.897,742.688L401.884,744.483L402.153,744.712L402.848,744.125L403.22,745.565L402.805,746.307L403.245,747.577L402.548,747.448L402.138,748.073L402.377,748.634L402.9,748.837L403.266,749.836L402.813,750.473L402.514,750.502L402.3,750.131L401.854,750.239L402.592,750.714L402.896,751.841L402.467,751.936L402.126,752.99L402.917,752.751L403.848,751.702L404.662,751.891L405.005,752.252L405.527,751.792L405.32,752.551L404.56,753.013L404.785,753.157L405.085,752.802L405.507,752.793L404.992,753.49L405.55,753.398L406.06,753.784L405.907,754.73L406.685,755.28L408.086,754.522L409.165,754.915L409.809,754.843L410.065,754.072L410.736,753.812L410.894,753.284L411.725,752.996L413.602,753.488L413.602,753.488L412.846,756.661L399.002,755.108L349.821,755.188L327.101,754.721L326.793,755.104L317.521,754.972L317.519,754.58L303.685,754.492L277.329,754.813L239.109,754.091L239.109,754.091L237.325,752.94L236.724,750.555L235.708,748.71L237.563,745.489L237.494,744.168L238.47,743.524L238.623,742.333L239.653,741.12L239.602,734.334L239.986,732.725L235.727,728.158L234.619,725.605L234.541,724.9L235.618,722.895L235.262,720.958L232.616,719.168L231.966,719.125L228.814,717.422L226.766,714.311L226.59,709L226.219,708.411L226.017,707.119L224.374,706.965L224.127,703.831L222.062,703.143L219.016,703.231L219.039,702.385L218.243,701.94L216.476,700.098L216.11,695.461L217.68,692.698L217.601,686.465L217.945,686.195L217.945,686.195L221.87,685.479L223.48,684.496L228.56,680.296L229.753,677.531L231.699,669.182L232.732,668.711L236.921,664.853L237.21,663.84L242.232,662.106L243.593,665.439L244.409,666.593L247.008,669.457L249.799,671.929L253.594,674.192L258.259,676.371L261.028,677.329z","Kolda","#CCB32F","Blahblah"},
    			{"M291.04,425.25l-0.472,0.03l-1.039,1.228l-3.966,-0.593l0.367,-3.041l-0.868,-1.8l-2.84,3.105l-5.811,3.066l-1.832,1.949l-2.702,1.502l-2.428,0.891l-2.632,-4.43l-2.317,-1.374l-7.005,-7.293l-3.58,2.395l-12.749,1.08l-2.946,2.117l-1.157,-0.116l-5.229,-1.629L231,421.305l-1.309,-3.501l-0.659,-0.243l-1.88,-1.796l-2.91,-1.187l-1.195,-1.007l-3.429,1.601l-3.139,0.253l-2.415,-2.542l-1.227,2.08l-0.112,1.883l0.692,1.811l-2.382,0.041l-2.633,1.396l1.656,4.499l-0.288,3.137l-1.165,-0.568l-1.998,-0.419l-5.195,2.088l-1.909,0.139l-2.335,-0.455l1.092,-2.053l0.266,-1.147l-1.47,-2.167l-7.488,-3.857l-11.076,-10.155l-8.732,-9.661l-0.811,0.209l-3.803,2.683l-4.741,4.237l-0.812,1.481l-3.376,1.347l-8.093,4.048l-2.021,0.607l-3.944,2.222l-2.242,0.466l-1.397,0.682l-0.518,0.732l0.175,0.335l-2.366,3.576l-5.186,4.153l-3.232,1.896l-0.867,1.271l-0.397,1.521l-0.547,0.59l-0.243,-0.33l-1.587,1.755l-2.687,1.011l-0.875,1.612l-0.769,0.104l-0.56,-0.917l-0.633,0.061l-0.746,0.562l-1.995,0.229l-3.62,-0.018l-3.434,-0.561l-1.587,0.155l-2.832,1.03l-3.159,2.284l-1.235,0.204l-0.237,1.013l-0.249,-0.06l0,0l-0.768,2.279l0.274,0.535l-0.521,0.739l-0.027,0.651l-4.195,8.66l-4.688,8.177L80.81,473.52l0,0l2.822,1.716l0.66,0.988l0.047,1.089l-2.967,4.292l-1.83,4.987l-0.582,2.922l0.306,0.398l2.608,0.963l1.248,1.73l1.793,0.983l1.392,1.67l3.31,2.155l0.392,0.718l-0.021,1.201l1.126,0.424l0.674,1.357l-0.093,3.272l-0.681,1.113l0.369,0.063l1.628,-1.442l0.637,-1.152l2.351,-2.413l3.838,-7.436l1.131,-0.243l0.564,-0.486l0.21,-0.942l-0.382,-0.326l1.401,-2.185l4.985,-5.165l0.569,0.313l2.65,2.883l0.97,0.422l2.618,0.493l2.417,-0.416l0.832,0.304l1.488,2.45l-0.08,0.803l-1.024,1.371l1.241,1.668l0.933,0.673l0.938,0.253l0.397,-0.34l0.371,-1.73l1.126,-0.396l1.003,0.412l1.237,1.565l0.422,1.816l-0.178,1.838l0.264,1.731l1.197,2.384l0.988,0.961l0.739,1.419l0.112,2.952l3.91,3.175l0.238,4.872l1.583,4.027l0.282,2.956l-0.151,1.401l0,0l2.456,-0.023l3.048,0.528l2.132,-0.416l1.695,0.13l1.911,-0.918l1.805,-0.453l2.67,0.861l2.022,1.057l0.676,-1.497l0.692,-0.648l3.841,0.165l0.17,-0.539l1.366,-1.081l1.148,-0.332l1.705,0.351l0.087,0.398l-0.343,0.321l6.167,-0.918l0.205,0.542l1.163,1.139l3.894,1.746l1.165,1.525l0.345,1.341l1.294,2.242l1.261,1.023l1.805,-0.166l1.551,-0.873l2.435,-3.345l0.776,-0.437l0.686,0.043l0.573,0.342l0.349,1.181l1.903,2.06l0.785,1.393l0.018,0.821l-0.515,0.91l2.437,1.114l1.623,0.422l-0.403,0.444l5.955,3.67l4.17,-1.512l1.243,-0.148l2.12,0.467l2.973,1.159l0.176,0.649l-0.244,1.761l1.441,0.823l0,0l1.671,-0.219l2.984,2.392l2.333,3.724l2.828,3.255l2.235,2.204l4.812,2.897l22.615,4.25l0.658,-2.544l10.538,-6.805l4.03,4.749l1.881,0.003l0,0l2.664,-3.183l0.577,-1.363l0.705,-4.315l0.584,-1.611l0.732,-0.739l2.672,-1.618l0.421,-7.032l-0.128,-2.402l-0.76,-4.344l-0.301,-6.022l-2.276,-6.696l-0.393,-0.523l-0.781,-6.39l0.677,-0.709l6.648,-1.504l0.467,-0.725l8.11,-0.013l3.841,-0.334l0.281,-0.785l4.617,-5.623l2.025,-0.865l1.883,-6.606l-0.109,-3.739l3.798,-5.485l-4.097,-0.082l-6.708,1.606l-1.107,0.054l-12.567,-6.625l-3.169,-0.884l-1.016,-0.925l-0.274,-1.199l-0.055,-0.808l1.63,0.019l2.344,-2.492l1.104,-1.75l-0.909,-2.443l0.054,-3.193l-1.567,-0.48l2.026,-6.354l2.133,-5.281l0.526,-0.694l1.67,-1.087l2.566,-1.004l-0.556,-4.588l13.229,-8.91L291.04,425.25z","Louga","#EBFB94","Blahblah"},
    			{"M400.844,405.389L399.156,405.896L398.204,406.646L397.699,407.457L397.876,408.986L399.167,410.249L400.576,410.073L401.486,408.405L402.202,407.636L403.008,407.376L403.258,407.511L403.5,408.752L404.527,409.946L410.256,412.206L411.396,413.041L411.151,417.115L412.439,418.686L412.244,420.4L412.777,422.328L413.687,423.901L414.658,424.888L415.997,425.666L417.002,425.757L417.507,426.132L417.456,427.049L416.4,428.047L415.918,428.9L415.938,429.571L416.471,430.195L418.146,431.032L418.812,431.735L418.964,432.804L418.609,435.046L419.04,436.98L422.165,439.803L422.22,440.265L421.864,440.553L420.763,439.918L420.014,440.103L419.563,441.061L419.589,442.285L427.88,449.541L427.517,450.654L426.771,451.688L425.804,451.844L424.141,451.327L423.496,451.985L423.554,453.625L424.84,455.552L425.881,458.012L426.448,458.338L427.252,458.301L428.584,456.855L429.998,456.678L434.294,458.922L439.781,461.154L439.734,461.512L439.087,462.047L439.786,463.017L439.893,464.208L438.584,466.796L438.062,468.854L438.188,469.635L438.542,469.911L440.729,470.584L441.921,471.319L443.704,471.702L446.426,471.418L448.382,469.944L450.181,469.896L451.488,469.3L451.933,469.386L452.33,471.91L452.061,474.023L452.228,474.886L453.144,475.34L454.979,474.905L455.606,475.028L455.778,475.336L455.434,476.23L453.631,477.804L453.495,482.918L453.987,484.023L455.941,485.738L457.434,486.077L459.308,486.052L462.841,487.946L463.508,488.573L464.676,490.975L464.654,492.607L463.27,494.441L461.806,494.02L460.635,492.985L459.096,492.941L458.412,493.705L458.684,495.113L459.55,495.961L461.911,497.314L462.479,498.183L462.742,499.329L463.295,499.961L464.351,499.936L465.951,498.546L467.381,498.392L468.513,498.963L469.488,500.723L468.748,503.432L469.144,504.934L470.232,505.633L472.557,506.379L475.446,509.153L478.131,510.235L478.587,511.456L478.85,511.699L479.215,511.555L479.215,511.555L482.861,516.586L483.295,516.533L483.785,517.889L485.442,520.222L485.779,521.922L486.494,522.358L485.977,523.123L486.269,523.826L486.978,525.104L487.505,524.829L487.724,525.747L488.227,525.977L487.382,527.392L487.791,527.841L487.529,528.188L487.79,529.137L488.923,530.999L482.709,550.269L476.06,559.472L468.616,562.826L453.28,565.073L448.511,563.621L444.82,562.84L424.346,559.691L415.576,566.483L413.792,567.371L412.195,569.104L398.766,579.521L397.794,580.022L387.549,580.384L371.086,580.003L361.381,564.549L353.706,563.157L342.114,564.337L338.098,569.131L330.483,566.565L327.862,566.215L328.107,565.771L322.258,562.363L313.557,560.729L311.188,558.429L309.544,558.803L307.663,559.882L301.591,562.431L300.253,563.149L299.267,564.644L295.585,564.853L293.277,563.431L290.696,563.439L290.696,563.439L290.662,563.005L288.297,562.147L287.424,562.104L286.945,562.644L286.126,562.739L285.74,562.577L285.524,561.387L281.102,561.322L279.395,561.592L278.441,562.576L276.059,562.574L270.394,558.984L268.744,558.479L265.855,555.262L265.855,555.262L268.519,552.079L269.096,550.716L269.801,546.4L270.385,544.789L271.117,544.05L273.79,542.432L274.21,535.399L274.083,532.997L273.323,528.653L273.022,522.631L270.746,515.935L270.353,515.411L269.572,509.021L270.249,508.313L276.897,506.809L277.364,506.084L285.474,506.071L289.315,505.737L289.596,504.952L294.213,499.329L296.238,498.464L298.122,491.857L298.013,488.118L301.811,482.633L297.714,482.551L291.006,484.157L289.899,484.211L277.333,477.586L274.163,476.702L273.147,475.777L272.874,474.578L272.818,473.771L274.448,473.789L276.792,471.297L277.897,469.547L276.988,467.104L277.042,463.91L275.476,463.43L277.501,457.075L279.635,451.794L280.161,451.1L281.832,450.013L284.398,449.009L283.842,444.421L297.07,435.511L297.07,435.511L300.756,440.52L300.367,441.123L300.035,443.308L300.878,447.568L300.494,449.425L301.311,450.056L303.502,450.938L304.888,452.908L305.1,454.234L309.531,454.264L309.857,454.96L310.359,455.152L309.87,457.368L309.423,457.347L309.417,458.698L309.18,458.873L308.573,461.607L306.003,461.611L306.431,469.313L306.005,474.904L310.336,480.177L309.675,481.8L310.063,482.482L314.551,481.418L324.568,481.359L330.13,478.262L331.751,474.252L331.439,473.01L329.857,473.004L329.936,471.616L328.528,470.248L328.705,468.593L332.457,467.901L331.814,464.101L347.288,464.661L349.97,453.044L351.767,440.416L353.969,429.015L356.293,428.11L360.825,423.365L361.882,422.942L362.572,421.536L364.414,419.608L364.659,418.344L365.098,417.72L367.146,416.635L375.254,413.758L377.009,405.918L377.58,404.62L377.58,404.62L379.091,407.103L380.837,408.641L381.465,408.842L383.142,407.379L386.157,407.535L390.986,405.086L392.49,404.735L394.262,404.877L396.88,405.775L397.534,405.566L400.272,403.449L400.954,403.681L401.532,404.765L401.426,405.106z","Matam","#ABDAC3","Blahblah"},
    			{"M202.913,682.848L206.669,684.597L207.856,684.604L213.551,686.649L217.945,686.195L217.945,686.195L217.601,686.465L217.68,692.698L216.11,695.461L216.476,700.098L218.243,701.94L219.039,702.385L219.016,703.231L222.062,703.143L224.127,703.831L224.374,706.965L226.017,707.119L226.219,708.411L226.59,709L226.766,714.311L228.814,717.422L231.966,719.125L232.616,719.168L235.262,720.958L235.618,722.895L234.541,724.9L234.619,725.605L235.727,728.158L239.986,732.725L239.602,734.334L239.653,741.12L238.623,742.333L238.47,743.524L237.494,744.168L237.563,745.489L235.708,748.71L236.724,750.555L237.325,752.94L239.109,754.091L239.109,754.091L238.727,754.563L237.967,754.583L235.995,754.142L233.878,754.191L227.781,756.707L224.436,758.807L217.926,761.327L214.777,764.863L210.813,767.848L208.251,769.368L192.789,775.962L192.859,776.324L189.384,778.053L189.304,777.801L183.81,780.286L178.273,779.354L163.384,777.678L163.384,777.678L163.292,776.479L162.83,776.047L161.629,775.602L160.049,776.333L159.656,775.447L159.509,774.651L160.332,774.155L160.066,773.226L160.137,771.677L159.416,770.546L157.221,769.293L156.925,768.424L157.059,767.041L155.865,765.311L155.78,764.599L156.539,763.668L156.567,763.143L156.263,762.961L155.653,760.097L153.961,757.917L152.865,757.192L152.462,756.979L150.64,757.115L150.167,754.41L151.211,750.873L150.412,749.839L150.048,747.849L150.908,746.941L152.658,746.083L153.321,743.501L152.155,741.59L152.061,740.109L154.335,738.238L154.959,736.698L154.378,734.842L155.056,733.868L154.983,733.327L153.827,733.028L153.825,732.639L154.257,732.326L153.822,731.202L153.576,730.929L152.721,730.837L153.074,730.133L153.593,729.88L153.53,728.59L154.066,727.645L155.144,727.371L155.546,726.762L156.126,724.646L157.105,724.455L157.653,724.02L158.777,722.395L159.483,720.678L160.045,718.093L162.212,715.184L162.401,714.017L162.143,713.102L160.99,712.886L160.17,713.078L159.485,712.742L158.77,711.116L158.974,710.483L160.118,709.12L161.725,707.819L162.478,707.877L162.657,707.65L162.913,705.571L162.913,705.571L162.826,704.186L171.802,704.2L171.846,687.381L179.252,687.011L181.643,686.31L183.857,685.106L186.349,686.007L193.267,687.191L196.038,686.221L197.903,684.664L197.805,684.303L199.652,682.921L202.479,682.637z","Sédhiou","#FBF083","Blahblah"},
    			{"M256.93,353.988L257.769,353.853L259.661,352.231L259.885,353.611L260.553,354.058L261.127,354.058L261.791,353.266L262.277,351.39L263.103,351.025L263.496,351.286L264.78,353.496L266.614,353.079L267.957,353.664L268.539,353.105L268.756,351.96L269.455,351.672L271.769,354.186L272.214,353.988L273.538,351.724L274.193,351.501L275.354,352.457L275.439,354.404L277.11,355.264L277.318,355.011L276.891,353.984L277.936,353.772L277.866,352.547L278.075,352.386L279.245,353.239L281.627,352.521L285.957,352.102L286.529,352.588L286.469,353.486L285.45,353.775L285.374,354.208L286.657,355.446L287.623,354.333L288.799,354.22L289.52,354.491L290.184,355.397L290.99,354.76L291.992,355.132L293.227,354.73L294.809,355.419L295.233,354.71L295.62,352.859L295.984,352.707L297.459,354.189L300.602,355.745L301.612,355.452L302.725,354.498L305.524,354.779L306.545,353.111L308.181,351.812L308.828,352.157L309.151,353.452L309.628,353.848L311.943,353.343L313.576,353.752L316.003,352.918L316.888,353.044L317.426,354.077L317.333,357.063L316.688,359.466L317.146,360.671L317.75,360.773L318.799,360.216L320.256,360.172L321.151,358.878L322.141,358.73L323.068,359.59L322.481,361.986L323.951,365.166L324.383,365.117L324.448,363.724L325.326,362.712L327.952,362.903L329.034,363.813L329.972,364.178L329.529,365.331L329.899,366.41L333.216,368.101L334.733,370.254L335.439,370.345L336.09,369.681L336.574,369.764L335.803,371.123L336.051,372.127L337.946,372.712L338.721,373.379L339.187,374.816L342.34,376.707L343.17,378.031L345.663,380.495L346.635,382.513L349.707,382.997L350.824,383.817L352.839,384.665L353.916,386.276L353.858,386.997L353.545,387.187L352.055,386.725L350.976,386.954L350.604,387.414L350.968,390.369L353.625,390.371L354.456,390.978L352.818,392.798L352.265,395.645L353.058,395.685L355.388,394.502L356.542,395.284L357.541,394.993L357.911,397.884L358.575,398.647L359.407,399.024L361.082,398.19L361.905,398.5L362.623,399.256L362.776,399.864L361.852,401.213L361.746,402.826L362.759,404.175L362.874,405.179L363.935,405.481L364.579,407.534L365.146,407.578L366.829,405.536L369.622,403.947L372.088,404.06L374.646,403.159L377.177,400.203L378.09,399.912L378.889,400.271L379.117,401.223L378.906,401.96L377.479,403.437L377.58,404.62L377.58,404.62L377.009,405.918L375.254,413.758L367.146,416.635L365.098,417.72L364.659,418.344L364.414,419.608L362.572,421.536L361.882,422.942L360.825,423.365L356.293,428.11L353.969,429.015L351.767,440.416L349.97,453.044L347.288,464.661L331.814,464.101L332.457,467.901L328.705,468.593L328.528,470.248L329.936,471.616L329.857,473.004L331.439,473.01L331.751,474.252L330.13,478.262L324.568,481.359L314.551,481.418L310.063,482.482L309.675,481.8L310.336,480.177L306.005,474.904L306.431,469.313L306.003,461.611L308.573,461.607L309.18,458.873L309.417,458.698L309.423,457.347L309.87,457.368L310.359,455.152L309.857,454.96L309.531,454.264L305.1,454.234L304.888,452.908L303.502,450.938L301.311,450.056L300.494,449.425L300.878,447.568L300.035,443.308L300.367,441.123L300.756,440.52L297.07,435.511L297.07,435.511L291.04,425.25L290.568,425.28L289.529,426.508L285.563,425.915L285.93,422.874L285.062,421.074L282.222,424.18L276.411,427.246L274.579,429.195L271.876,430.697L269.449,431.588L266.817,427.158L264.5,425.784L257.495,418.491L253.915,420.886L241.166,421.966L238.22,424.083L237.063,423.967L231.833,422.338L231,421.305L229.691,417.804L229.032,417.561L227.152,415.765L224.243,414.578L223.048,413.571L219.619,415.172L216.479,415.425L214.064,412.883L212.837,414.963L212.725,416.846L213.417,418.656L211.035,418.697L208.402,420.094L210.058,424.593L209.77,427.729L208.605,427.161L206.608,426.742L201.413,428.83L199.503,428.969L197.168,428.514L198.26,426.461L198.526,425.313L197.056,423.146L189.568,419.289L178.492,409.134L169.76,399.473L168.949,399.682L165.146,402.364L160.405,406.602L159.593,408.083L156.217,409.43L148.125,413.478L146.104,414.085L142.159,416.307L139.917,416.772L138.521,417.454L138.003,418.187L138.178,418.521L135.812,422.098L130.626,426.251L127.394,428.147L126.526,429.419L126.129,430.94L125.582,431.53L125.339,431.2L123.752,432.955L121.065,433.966L120.19,435.578L119.421,435.683L118.862,434.766L118.229,434.826L117.483,435.388L115.488,435.617L111.868,435.6L108.435,435.039L106.848,435.194L104.016,436.225L100.857,438.509L99.623,438.713L99.385,439.726L99.136,439.666L99.136,439.666L100.644,433.762L101.604,422.301L101.979,412.183L104.596,412.132L105.712,410.374L106.36,410.053L106.709,408.974L108.065,408.232L108.128,407.563L106.929,406.533L106.775,405.943L107.26,404.778L106.963,402.963L107.215,402.515L107.01,399.727L108.177,397.697L109.227,396.572L110.977,395.881L112.691,396.606L113.762,396.269L115.163,394.588L116.067,391.909L116.967,391.137L117.045,390.051L115.683,388.065L115.859,386.418L116.821,384.749L117.448,384.252L118.357,384.046L119.165,382.931L119.374,382.225L119.091,380.79L119.242,377.979L119.98,377.051L121.26,376.848L121.41,376.585L121.53,372.931L121.829,371.49L122.592,370.407L123.836,369.813L124.027,366.615L124.652,365.815L125.947,364.964L128.24,364.322L129.651,364.668L131.205,365.488L133.498,365.337L134.945,364.544L136.338,362.917L137.342,362.222L138.805,361.763L139.129,361.946L141.131,361.639L142.052,362.136L142.429,362.692L142.62,363.388L142.474,365.059L144.808,366.591L146.932,369.54L148.659,369.349L150.891,367.521L152.082,367.058L153.674,367.473L154.804,368.249L155.146,368.843L155.572,368.932L156.176,366.585L158.079,363.189L161.377,361.04L161.499,361.979L160.941,364.194L159.772,366.433L160.859,365.922L162.929,365.599L165.29,365.922L166.149,366.678L166.265,368.207L168.728,366.826L169.994,366.451L170.972,366.485L173.841,367.798L178.915,368.5L181.923,370.244L183.024,369.368L186.869,369.003L188.527,368.311L189.034,367.414L188.609,365.508L189.472,364.426L190.747,364.601L191.927,364.376L194.25,365.802L195.602,366.104L197.244,365.948L199.865,365.132L200.738,364.387L199.65,362.694L199.7,361.65L200.077,360.935L201.205,360.003L203.434,359.023L203.834,358.401L204.67,357.905L206.452,358.192L207.731,359.25L208.432,360.526L208.736,362.386L209.18,362.918L211.595,363.576L213.971,362.445L215.406,361.209L217.533,361.186L220.502,359.814L224.237,360.541L225.684,360.479L227.185,361.865L227.864,362.054L228.714,362.01L231.081,360.39L233.121,359.543L234.053,358.375L235.118,358.396L238.328,359.48L239.635,359.281L242.167,357.233L242.767,356.376L242.732,355.509L241.678,353.967L239.838,353.733L239.265,353.311L239.347,351.612L241.389,349.248L242.491,349.314L243.351,349.74L243.924,350.591L244.672,352.747L245.655,354.278L245.945,354.327L246.402,353.833L247.745,354.035L250.803,352.738L251.221,351.82L251.417,348.66L252.062,347.851L253.081,347.896L255.683,349.295L255.83,350.201L255.496,351.925L256.235,353.375z","Saint-Louis","#F1A1AC","Blahblah"},
    			{"M267.232,645.003l-0.002,-0.006l0,0L267.232,645.003zM267.232,645.003l0.457,-0.452l-0.042,-0.4l1.001,-0.854l1.875,-2.465l8.11,-0.81l2.786,-6.691l1.663,-0.775l7.078,-4.74l1.727,-4.697l-2.508,-0.209l2.159,-1.283l0.639,-0.725l-0.909,-6.845l1.057,-1.465l-0.374,-0.496l-0.673,-0.225l0.737,-4.613l-1.073,-11.496l-0.071,-0.405l-2.756,-2.377l-1.602,-1.853l0.699,-13.054l0.347,-0.187l0.106,-0.515l-0.248,-3.09l0.574,-9.408l2.125,-0.162l0.581,-1.271l0,0l2.582,-0.009l2.308,1.422l3.682,-0.209l0.986,-1.494l1.337,-0.719l6.072,-2.549l1.881,-1.079l1.644,-0.374l2.369,2.301l8.701,1.634l5.85,3.408l-0.245,0.443l2.621,0.351l7.614,2.565l4.017,-4.794l11.592,-1.18l7.675,1.392l9.705,15.454l16.463,0.381l10.245,-0.361l0.972,-0.502l13.43,-10.417l1.597,-1.732l1.784,-0.888l8.77,-6.792l20.475,3.148l3.69,0.781l4.77,1.452l15.336,-2.247l7.443,-3.354l6.649,-9.203l6.214,-19.27l-1.133,-1.862l-0.261,-0.949l0.262,-0.347l-0.409,-0.449l0.845,-1.415l-0.503,-0.229l-0.219,-0.918l-0.527,0.275l-0.709,-1.278l-0.292,-0.703l0.518,-0.765l-0.715,-0.437l-0.337,-1.7l-1.657,-2.333l-0.49,-1.355l-0.434,0.053l-3.646,-5.031l0,0l0.186,-1.279l0.432,-0.649l1.029,-0.378l1.113,0.135l5.153,2.474l1.819,2.188l3.779,3.114l5.785,1.716l1.397,1.16l1.64,2.056l0.827,6.05l0.41,0.845l-0.499,1.649l0.09,0.505l1.391,1.061l2.537,2.629l1.689,1.225l4.183,1.662l2.761,0.319l4.482,5.27l3.881,0.869l0.707,2.662l1.361,0.165l0.818,0.521l0.32,1.237l-0.571,1.361l0.604,0.681l0.905,0.346l1.675,-0.007l1.007,0.878l0.977,-0.245l0.257,0.222l-0.091,0.684l-1.509,0.809l-0.166,0.751l0.236,0.27l2.313,0.535l0.515,0.41l0.19,1.651l-0.426,1.301l-0.528,0.609l-1.686,0.286l-0.077,2.866l-1.384,1.927l-0.087,1.252l-2.133,-0.122l-0.846,0.813l0.366,2.282l-0.705,1.807l-0.053,1.63l2.118,1.313l-0.694,2.197l1.649,1.617l-0.017,0.346l-1.205,1.483l0.048,1.763l1.919,0.982l0.513,-0.446l0.654,0.049l0.629,1.209l0.858,0.422l1.171,0.035l0.415,-0.427l0.836,0.212l0.276,-0.109l-0.229,-0.495l0.414,-0.172l0.154,0.534l-0.542,0.783l0.519,1.039l0.714,0.372l0.257,-0.48l1.117,-0.414l0.868,0.842l0.04,0.67l-0.244,0.158l0.221,0.446l-0.45,-0.103l-0.493,0.736l1.363,1.25l-0.459,0.519l-0.182,-0.188l-0.273,-0.125l-0.141,0.289l-0.164,-0.356l-0.33,-0.093l0.003,0.435l-0.25,-0.051l0.341,0.527l1.384,0.212l-0.521,0.324l0.313,0.173l-0.215,0.473l-0.85,0.231l0.101,0.259l0.434,0.215l0.617,0.299l1.057,-0.075l0.69,0.83l1.341,-0.2l1.81,1.055l1.057,-0.099l-0.051,0.464l0.278,0.17l0.363,-0.35l0.603,0.645l2.353,6.663l0.959,0.854l0.016,1.363l1.18,0.503l0.228,0.437l-0.251,3.748l-0.694,0.982l-0.4,1.371l0.39,0.884l0.168,2.731l-1.398,0.363l0.26,2.104l-0.745,1.206l-0.646,0.199l0.104,1.752l-0.753,0.512l1.019,2.081l0.071,0.719l-0.357,0.468l6.555,-0.289l0.829,7.39l-1.018,6.353l-0.432,0.579l0.073,1.104l-0.599,2.527l0.16,1.172l-1.115,0.367l-0.407,0.912l-0.946,0.253l-0.682,1.463l-2.025,1.669l-0.122,0.718l-0.646,0.533l-0.714,0.007l-2.218,1.64l-2.092,0.793l-0.604,0.792l-0.773,-0.253l3.329,5.828l0.349,1.525l-0.147,2.438l3.669,3.169l0.391,0.652l-0.121,1.792l1.436,0.698l1.141,1.707l0.237,0.883l1.693,1.299l2.377,0.796l0.785,1.351l2.402,1.303l0.58,1.211l1.479,0.732l0.612,0.669l0.443,1.209l-0.025,1.111l-0.169,0.605l-1.147,1.085l-0.129,1.11l-0.849,1.902l0.156,0.833l0,0l-0.948,0.267l-0.788,0.604l-2.125,0.373l-0.385,0.461l-0.812,0.312l-0.938,-0.291l-0.71,0.13l-0.814,1.44l-2.227,2.124l-0.441,0.033l-0.394,0.444l-1.002,0.005l-1.166,1.471l-1.36,-0.234l-0.454,-1.482l0.415,-0.355l0.272,-1.081l-0.397,-0.953l0.371,-1.952l-2.604,1.369l-1.823,-1.222l-3.256,-0.575l-1.789,-1.666l-1.091,-0.286l-0.681,-0.776l-0.365,-1.193l-1.649,-0.55l-3.459,-1.976l-0.35,-0.441l-2.205,-1.042l-0.36,0.14l-1.474,-0.836l-0.808,0.526l0.194,1.512l-0.307,1.597l-0.58,0.2l-0.573,1.013l0.252,0.528l-0.053,1.299l2.962,4.653l0.756,0.652l0.114,0.368l-0.952,1.608l-0.993,0.561l-0.954,0.079l-0.485,0.461l-1.646,-0.442l-1.906,0.157l-0.497,-0.3l-1.1,-0.034l-0.363,2.5l-1.197,1.472l0.007,1.387l-0.144,0.285l-0.942,0.307l-0.439,-0.136l-1.044,-1.626l-2.658,-1.694l-2.612,1.048l-1.231,-0.222l-0.707,1.303l-1.543,0.409l-1.725,1.34l-0.104,0.458l-0.391,0.004l0.115,1.013l-1.357,0.687l-0.668,2.561l-0.75,0.504l0.001,0.575l-0.342,0.236l-1.022,-0.287l-0.923,0.232l-0.446,0.356l-0.189,0.665l-0.358,0.027l-0.352,-0.455l-0.781,0.468l-0.511,-0.425l-1.047,0.552l-0.722,-0.224l-0.685,-0.552l-0.644,-1.108l-0.841,0.021l-0.381,0.324l-0.309,-0.873l-0.846,-0.261l-0.194,1.272l-1.087,0.338l0.131,0.281l-2.52,-0.489l-0.516,0.355l0.001,0.561l-0.49,0.573l-0.805,0.384l-0.57,-0.406l-0.39,0.654l-0.718,0.213l-0.95,-0.133l0.081,1.331l0.275,0.063l-0.228,0.294l0.247,0.324l-0.446,0.746l0.723,0.459l-0.223,0.364l0.365,0.276l-0.717,-0.123l0.122,0.976l-1.407,0.926l0.142,1.21l-1.119,0.33l-0.442,1.048l-1.735,0.179l-0.042,0.694l0.354,0.274l-0.015,0.35l-0.777,0.517l-0.484,0.138l-0.426,-0.451l-1.096,-0.361l-0.503,0.137l-0.083,0.63l-0.812,-0.408l-0.336,1.11l0.399,1.065l-0.307,0.174l-0.382,-0.372l-0.949,0.265l0.047,1.693l-1.354,0.126l-0.906,-0.303l-0.242,0.113l0.186,0.642l-1.394,0.159l0.035,0.46l0.675,0.918l-0.847,-0.313l-0.488,0.164l-0.097,0.718l0.867,0.799l-0.268,0.586l-1.529,-0.27l-0.835,-1.747l-1.14,0.855l-0.573,-0.512l-1.015,-0.249l0.298,-0.746l-0.797,-0.56l-0.709,0.347l-0.23,-1.285l-1.652,-0.926l-0.469,-0.648l-0.508,0.745l-0.585,0.316l-0.418,-0.94l0.146,-0.54l-0.376,0.06l-0.567,-0.679l-0.878,-0.011l-0.201,-0.263l0.552,-1.427l-1.313,0.662l-0.947,-0.807l-1.373,1.208l-0.574,-0.687l-1.168,0.199l-0.675,-0.662l-0.272,0.646l-0.975,0.461l-1.184,0.266l-0.71,-0.129l0.017,0.835l-0.267,0.433l-1.107,-0.275l-0.85,0.144l-0.797,-0.801l-0.258,0.716l-0.968,0.649l-1.177,1.986l-0.767,0.327l-1.578,-1.214l-3.209,-1.549l-0.898,0.583l-0.75,-0.527l-0.379,0.073l-0.175,0.452l-1.082,-0.051l0.543,-0.427l-0.832,-1.035l-0.748,0.283l-0.098,0.76l-0.293,0.163l-0.552,-0.078l0.05,-0.569l-0.913,0.909l-1.34,-0.037l0.215,1.08l-0.229,0.292l0.315,0.5l-0.885,0.747l-0.68,0.081l-0.877,0.856l-0.459,0.074l-0.229,-0.254l-0.169,0.578l0.435,0.405l2.103,0.338l0.543,1.553l1.172,1.027l0.497,1.595l0.298,-0.023l0.376,-0.685l0.281,0.029l1.421,1.334l0.19,1.054l0.64,1.164l1.092,0.693l-0.04,1.032l0.297,0.606l-1.115,1.235l-0.753,0.326l-0.979,-0.432l-0.962,0.109l1.319,0.985l-0.377,1.212l0.124,0.7l2.529,1.291l-0.807,1.259l0.202,0.884l2.601,0.881l1.912,-0.016l0.639,0.99l-0.084,0.287l-1.169,0.56l0.255,0.577l0.983,0.787l-0.618,0.249l-0.896,1.41l0.366,0.743l-0.332,0.634l1.159,4.458l1.521,1.867l-1.928,0.255l-1.634,0.64l-2.23,1.169l-0.627,0.647l-0.008,1.155l0.646,0.864l2.532,1.424l-0.125,0.258l0,0l-0.483,0.079l-0.471,-0.578l-0.307,0.003l-0.16,0.914l-0.592,-0.558l-1.125,-0.257l-0.295,0.681l-1.166,-0.267l-0.704,0.968l-1.175,-1.063l-1.25,-0.324l0.082,-0.674l-0.47,-0.421l-0.54,0.412l-0.539,-0.163l-0.332,0.688l-0.668,0.354l-0.873,-0.94l-0.879,0.424l-0.893,-0.6l-1.322,0.11l-1.375,-0.548l-0.927,0.488l0.172,0.564l-1.785,0.153l-0.356,-0.216l-0.835,0.463l-1.303,-0.245l0.267,-1.018l-0.474,-0.378l-0.599,0.669l-0.439,-0.527l0.052,-2.678l-0.224,-0.673l-0.652,-0.103l0,0l-1.877,-0.492l-0.831,0.288l-0.157,0.527l-0.671,0.261l-0.257,0.771l-0.644,0.072l-1.079,-0.393l-1.401,0.758l-0.777,-0.55l0.152,-0.946l-0.51,-0.386l-0.558,0.092l0.515,-0.697l-0.422,0.009l-0.3,0.355l-0.226,-0.145l0.761,-0.462l0.207,-0.759l-0.522,0.46l-0.343,-0.361l-0.814,-0.188l-0.931,1.049l-0.791,0.239l0.341,-1.055l0.43,-0.095l-0.305,-1.127l-0.737,-0.475l0.445,-0.108l0.214,0.371l0.299,-0.029l0.453,-0.637l-0.365,-0.999l-0.523,-0.203l-0.239,-0.561l0.41,-0.625l0.697,0.129l-0.44,-1.271l0.415,-0.741l-0.372,-1.44l-0.694,0.587l-0.27,-0.229l1.014,-1.796l-0.239,-0.566l-1.31,-0.104l-0.359,-1.96l1.356,-0.92l-0.198,-1.047l-1.04,-0.443l0.128,-0.359l0.585,0.005l0.82,0.194l0.723,0.562l0.565,-0.449l-0.286,-0.819l-2.027,-1.617l0.136,-0.378l0.989,-0.028l-0.507,-0.473l0.49,-1.362l-0.588,-0.204l-0.956,0.152l-1.322,-1.205l-0.981,-0.173l-0.08,-1.252l-0.551,-0.947l0.803,0.11l0.68,-1.097l-0.542,-0.75l-0.342,0.059l0.198,0.462l-1.063,-0.055l-0.575,-0.934l0.775,-0.996l1.304,-0.287l-0.004,-0.671l-0.555,0.368l-0.493,-0.188l0.083,-0.771l-0.861,-0.965l0.958,-0.557l0.319,-1.025l-1.119,-0.976l-1.225,1.062l-0.201,-0.464l-0.361,0.146l0.264,-1.259l0.575,-0.117l-0.479,-0.347l1.118,-0.379l-0.095,-1.109l-0.888,0.149l-0.254,0.311l-0.067,-0.597l-0.402,0.472l-0.076,-0.377l-0.928,-0.34l0.315,-0.356l0.19,-0.105l0.001,-0.244l-0.705,-0.811l-0.621,0.503l-0.262,-0.105l0.171,-0.424l-0.259,-0.151l0.983,-0.864l-0.946,-0.891l-0.678,0.195l0.173,0.37l0.171,0.37l-0.188,0.268l-0.681,-0.275l-0.06,0.376l-0.469,-0.172l-0.308,-0.374l-0.017,-0.962l0.439,-0.212l0.235,-0.521l-0.394,-0.222l0.017,-0.413l0.541,0.205l0.089,-0.321l-0.747,-0.143l-0.75,0.958l-0.056,-0.743l0.285,-0.212l-0.5,-0.599l0.349,-0.38l-0.187,-0.475l-0.54,-0.031l-0.004,0.418l-0.323,-0.685l-0.325,0.098l-0.366,-0.399l0.251,-0.258l-0.169,-0.302l0.304,-0.045l-0.325,-0.329l0.108,-0.302l0.363,0.125l0.134,-0.312l-0.971,-0.39l-0.205,0.235l-0.593,-0.416l-0.279,0.25l-0.272,-0.15l0.086,-0.667l0.865,-0.271l-0.104,-0.353l-0.624,-0.029l0.227,-0.776l0.616,0.482l0.391,-0.424l-0.21,-0.41l-0.642,-0.136l-0.148,-0.458l0.153,-0.15l0.361,0.271l0.09,-0.45l-0.285,-0.038l-0.015,-0.303l-0.629,0.1l-0.197,-0.365l0.55,-0.523l-0.368,-0.161l0.242,-0.33l0.537,-0.012l0.274,-0.661l-0.281,-0.229l0.379,-0.462l-0.145,-0.278l-0.938,-0.184l0.596,-0.495l0.521,-0.033l0.244,0.617l-0.013,-1.088l0.417,-0.165l-0.46,-0.285l0.002,-0.528l-0.517,-0.265l-0.385,0.158l0.153,-0.837l0.471,0.202l-0.473,-0.762l0.127,-0.295l-0.438,-0.029l-0.042,-0.564l-0.402,-0.344l-0.466,0.471l-0.652,0.144l-0.797,0.003l-0.776,-0.434l-0.143,-0.767l0.716,-1.813l-1.02,-0.876l-2.75,0.422l-1.126,-1.288l-0.113,-0.556l1.207,-1.208l1.368,-3.36l-0.182,-0.249l-0.856,0.149l-2.536,0.861l-0.425,-0.836l1.791,-2.262l1.143,-0.775l0.071,-0.979l-0.346,-0.264l-1.666,0.084l-5.021,1.125l-2.325,-0.059l-0.516,-0.364l1.507,-1.358l0.734,-1.174l0.081,-1.533l-0.71,-0.763l-0.02,-0.965l1.555,-1.186l1.851,-0.948l0.564,-1.21l-2.322,-1.271l-3.145,-0.78l-2.284,1.952l-0.882,-0.144l-0.424,-1.36l1.007,-2.32l0.093,-1.845l1.034,-1.469l-0.257,-0.725l-1.214,0.247l-2.107,-0.452l-1.094,2.384l0.058,1.911l-2.122,-0.733l-0.576,0.073l0,0l-0.916,-1.014l-1.146,-2.085l-0.963,-0.99l-1.401,-0.761l-3.354,-0.937l-1.932,-0.988l-1.486,-0.116l-2.167,0.644l-3.184,1.958l-6.124,-0.123l-4.611,1.812l-2.269,0.225l-4.112,2.356l-2.164,1.862l-1.513,1.858l-3.528,0.282l-4.736,1.678l-2.604,-1.123l-2.098,-0.298l-0.683,-0.811l-1.851,-1.171l-3.236,-1.295l-0.649,-1.21l-0.957,-0.996l-2.469,-1.716l-0.104,-1.757l-0.644,-2.688l-1.974,-3.197l-2.167,-1.71l-2.912,-1.562l-3.29,-0.628l-4.467,-0.067l-3.202,1.223l-2.997,1.88l-1.052,0.965l-0.925,0.083l-7.045,-3.779l-0.409,-1.542l-0.776,-0.086l-0.115,-0.608l0.677,-0.59l-0.13,-1.469l-0.61,-2.283l-1.02,-0.702l0.22,-1.162l-0.452,-0.632l-0.694,-0.091l-0.474,-1.337L267.232,645.003z","Tambacounda","#FCEA0D","Blahblah"},
    			{"M80.81,473.52L83.632,475.235L84.292,476.224L84.339,477.313L81.372,481.604L79.542,486.592L78.96,489.514L79.266,489.912L81.875,490.875L83.122,492.605L84.915,493.589L86.307,495.259L89.617,497.414L90.009,498.132L89.987,499.333L91.113,499.757L91.788,501.114L91.694,504.387L91.014,505.5L91.382,505.563L93.011,504.12L93.648,502.968L95.999,500.555L99.836,493.119L100.967,492.876L101.532,492.39L101.742,491.447L101.359,491.121L102.76,488.937L107.745,483.771L108.314,484.085L110.964,486.968L111.935,487.39L114.552,487.883L116.97,487.467L117.801,487.771L119.289,490.221L119.209,491.023L118.185,492.395L119.426,494.063L120.358,494.735L121.297,494.988L121.694,494.648L122.065,492.918L123.191,492.522L124.194,492.935L125.432,494.5L125.854,496.316L125.676,498.154L125.939,499.886L127.136,502.27L128.125,503.23L128.863,504.649L128.976,507.602L132.885,510.776L133.124,515.648L134.706,519.676L134.988,522.632L134.836,524.033L134.836,524.033L130.784,525.133L129.858,525.031L129.502,524.576L128.399,524.947L128.055,523.446L128.36,522.979L127.614,522.467L124.981,521.296L120.476,520.084L120.497,519.266L119.874,518.717L119.162,518.764L118.747,519.287L116.816,518.687L117.112,517.792L116.792,517.522L116.087,518.54L114.641,518.193L114.065,518.36L113.765,518.038L108.644,517.796L105.793,518.616L103.321,520.237L100.192,520.4L100.294,521.092L99.768,521.305L93.457,523.227L89.121,524.145L87.369,525.013L85.178,527.017L84.656,527.645L87.711,531.564L89.302,532.862L90.416,534.356L90.751,536.389L88.866,538.06L88.317,539.346L93.471,543.692L92.979,545.701L92.592,546.192L92.68,547.028L93.133,547.177L92.571,549.027L91.394,549.544L88.844,553.073L88.736,554.702L89.414,554.869L89.158,555.841L89.493,556.231L90.25,556.053L90.558,556.801L91.199,556.973L91.076,557.296L92.061,558.698L93.406,559.619L93.445,560.044L95.69,560.686L100.585,560.232L101.156,561.749L101.156,561.749L101.214,562.919L100.269,564.74L100.315,565.476L99.399,569.112L97.904,571.771L93.586,575.419L91.364,576.326L89.62,578.201L88.206,578.503L84.104,578.263L83.445,579.038L83.232,580.623L82.703,581.695L82.196,585.934L82.522,590.046L82.349,590.989L79.807,594.708L80.29,595.399L80.866,595.386L79.945,596.253L78.708,596.771L79.08,598.087L78.779,598.888L79.401,599.766L80.861,600.535L80.857,601.912L79.854,603.079L79.146,603.171L78.354,604.225L77.552,604.474L76.957,605.306L77.938,606.727L77.925,607.316L77.372,607.209L76.211,607.632L75.34,607.301L74.841,607.445L74.184,608.417L74.134,609.024L74.401,609.412L76.639,610.86L76.544,611.469L77.933,612.985L78.023,615.116L76.873,615.176L75.942,616.414L75.942,616.414L74.928,612.074L73.112,608.473L73.173,608.132L72.661,607.722L71.963,607.967L71.29,607.746L71.353,607.025L70.857,606.741L70.785,607.099L68.586,604.806L67.718,603.379L66.775,602.913L66.483,600.178L65.621,597.539L62.196,593.103L61.397,592.69L60.589,592.675L60.232,590.397L60.37,586.867L60.007,585.635L59.136,584.577L58.606,583.032L57.97,582.53L56.663,580.489L54.993,579.501L52.95,577.426L51.595,577.06L50.654,576.237L48.786,576.097L47.868,575.491L47.271,574.058L46.472,573.763L45.67,572.349L44.79,571.513L44.247,569.176L43.033,566.29L40.437,564.123L39.205,561.784L39.205,561.784L41.075,560.658L40.401,558.736L41.105,555.638L41.108,554.082L39.975,553.093L40.468,550.589L40.49,549.856L40.118,549.815L40.143,549.522L40.603,549.017L42.071,548.675L42.553,548.23L42.727,547.022L42.529,545.723L41.579,545.42L41.326,545.081L41.209,543.35L40.562,540.715L39.514,537.818L38.659,536.34L38.263,531.512L37.765,531.05L37.765,531.05L40.959,529.358L43.015,525.016L54.302,512.233L63.393,500.597L67.259,495.197L76.179,480.53z","Thiès","#3875FF","Blahblah"},
    			{"M90.072,705.396L90.548,705.737L91.49,705.754L93.572,705.284L94.715,705.79L96.572,705.851L115.769,705.762L133.301,706.043L149.929,705.952L157.145,705.368L162.913,705.571L162.913,705.571L162.657,707.65L162.478,707.877L161.725,707.819L160.118,709.12L158.974,710.483L158.77,711.116L159.485,712.742L160.17,713.078L160.99,712.886L162.143,713.102L162.401,714.017L162.212,715.184L160.045,718.093L159.483,720.678L158.777,722.395L157.653,724.02L157.105,724.455L156.126,724.646L155.546,726.762L155.144,727.371L154.066,727.645L153.53,728.59L153.593,729.88L153.074,730.133L152.721,730.837L153.576,730.929L153.822,731.202L154.257,732.326L153.825,732.639L153.827,733.028L154.983,733.327L155.056,733.868L154.378,734.842L154.959,736.698L154.335,738.238L152.061,740.109L152.155,741.59L153.321,743.501L152.658,746.083L150.908,746.941L150.048,747.849L150.412,749.839L151.211,750.873L150.167,754.41L150.64,757.115L152.462,756.979L152.865,757.192L153.961,757.917L155.653,760.097L156.263,762.961L156.567,763.143L156.539,763.668L155.78,764.599L155.865,765.311L157.059,767.041L156.925,768.424L157.221,769.293L159.416,770.546L160.137,771.677L160.066,773.226L160.332,774.155L159.509,774.651L159.656,775.447L160.049,776.333L161.629,775.602L162.83,776.047L163.292,776.479L163.384,777.678L163.384,777.678L156.912,778.467L148.58,775.568L145.61,775.669L136.455,777.958L132.446,776.665L125.795,779.577L118.773,783.631L115.577,785.14L114.896,786.572L110.958,786.221L104.396,787.072L101.979,787.766L98.678,786.766L92.681,788.161L89.26,787.116L84.365,786.897L81.438,788.829L80.305,787.373L80.128,785.843L79.685,784.926L79.202,784.543L78.848,784.632L78.206,783.779L76.141,782.343L74.403,776.996L74.215,774.228L75.821,770.237L76.826,762.705L76.56,760.588L75.545,758.694L75.491,758.153L75.853,757.772L74.876,755.908L74.512,753.073L75.603,750.142L75.694,748.56L75.13,747.772L74.299,747.826L74.61,747.478L74.6,746.932L74.244,745.788L75.531,742.147L75.666,740.399L76.353,737.204L77.039,735.415L77.998,729.687L78.683,727.816L79.671,719.554L79.529,717.944L78.476,715.943L78.95,715.029L80.177,714.588L80.348,714.17L79.883,713.124L80.591,712.739L79.566,711.838L79.592,711.323L79.875,710.845L80.302,710.821L80.965,711.432L81.076,710.98L80.689,710.183L81.937,710.134L82.215,709.855L82.311,708.92L83.094,708.979L82.893,708.011L82.285,707.354L82.646,706.715L83.291,706.973L83.025,706.115L84.013,706.323L84.341,705.525L86.026,705.539L87.247,704.896z","Ziguinchor","#FD9164","Blahblah"},
    		};
     
    		public static List<MapRegion> createRegions(String[][] desc) { // méthodes qui analyse le tableau pour en faire une liste de région
     
    			final List<MapRegion> list = new ArrayList<>(); // une liste pour stocker les régions
    			for(String[] regionDesc : desc) { // on parcourt le tableau
    				Path2D path = simpleSVGToPath2D(regionDesc[0]); // première colonne, définition SVG du path, qu'on va parser (analyser la chaîne de caractères et la convertir en Path2D)
    				String name = regionDesc[1]; // deuxième colonne, nom de la région
    				Color color = toColor(regionDesc[2]); // troisième colonne, couleur
    				String data = regionDesc[3]; // quatrième, texte à afficher
    				list.add(new MapRegion(path, color, name, data)); // on ajoute la nouvelle région
    			}
    			return list;
     
    		}
     
    		private static Color toColor(String colorDef) { // méthode qui convertit une couleur au format "css" en couleur Java
    			return Color.decode(colorDef);
    		}
     
    		private static Path2D simpleSVGToPath2D(String string) { // méthode qui convertit un path SVG en Path2D
    			string = string.replace(',', ' '); // pour faciliter le traitement des séparateurs (espace=virgule)
    			Path2D path = new Path2D.Double(); // on créé un path
    			char lastCommand=0; // en SVG, une commande qui suit la même commande n'est pas répété : on a besoin de connaitre la commande précédemment exécutée
    			Point2D point = new Point2D.Double(); // le point pour dessiner le path en SVG
    			for(int i=0; i<string.length(); ) { // on va parcourt tous les caractères de la définition 
    				char command = string.charAt(i); // i est la position du caractère à traiter
    				if ( command==' ') { // si la commande est une espace, alors on utilise la dernière commande
    					command=lastCommand;
    				}
    				else {
    					lastCommand=command; // on stocke la dernière commande pour la prochaine itération qui fait une référence à la commande précédente
    				}
    				switch(command) { // selon la commande
    				case 'M': // si la commande est M = moveTo SVG
    					i = parsePoint2D(i, string, point, false); // on parse les coordonnées du point qui suivent dans la description
    					path.moveTo(point.getX(), point.getY()); // on fait le move
    					break;
    				case 'l': // si la command est l = lineTo relatif 
    					i = parsePoint2D(i, string, point, true); // on parse les coordonnées du point qui suivent dans la description
    					path.lineTo(point.getX(), point.getY());  // on fait le lineTo
    					break;
    				case 'L': // si la commande est L = lineTo absolu
    					i = parsePoint2D(i, string, point, false); // on parse les coordonnées du point qui suivent dans la description
    					path.lineTo(point.getX(), point.getY()); // on fait le lineTo
    					break;
    				case 'h': // = lineTo horizontal relatif 
    					i = parseHor2D(i, string, point, true);
    					path.lineTo(point.getX(), point.getY()); // on fait le lineTo
    					break;
    				case 'H': // = lineTo horizontal absolu
    					i = parseHor2D(i, string, point, false);
    					path.lineTo(point.getX(), point.getY()); // on fait le lineTo
    					break;
    				case 'v': // = lineTo vertical relatif
    					i = parseVert2D(i, string, point, true);
    					path.lineTo(point.getX(), point.getY());
    					break;
    				case 'V': // = lineTo vertical relatif
    					i = parseVert2D(i, string, point, true);
    					path.lineTo(point.getX(), point.getY());
    					break;
    				case 'c': // = cubic bezier relatif
    					i = bezierCurve(path, i, string, point, true);
    					break;
    				case 'C': // = cubic bezier absolu
    					i = bezierCurve(path, i, string, point, false);
    					break;
    				case 'z': // fermeture du path
    					path.closePath();
    					i++;
    					break;
    				default:
    					throw new IllegalStateException("Command: "+command);
    				}
    			}
    			return path;
    		}
     
    		/**
                     *  parse et ajoute une bezier au path
                     * @param path : le path2D qu'on es en train de créé
                     * @param index : la position du prochain caractère dans la description SVG
                     * @param string : la description SVG
                     * @param point : le point qui sert à mémoriser le dernier point dessiné
                     * @param relative : un booléen qui dit qu'on est en train de faire du relatif(true) ou de l'absolu(false)
                     * @return la position du prochain caractère à traiter dans la description SVG pour tracer la suite du contour
                     */
    		private static int bezierCurve(Path2D path, int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			int start=index;
    			index = nextIndex(string, index);
    			double xp1 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double yp1 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double xp2 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double yp2 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double xp3 = Double.parseDouble(string.substring(start, index));
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			start=index;
    			index = nextIndex(string, index);
    			double yp3 = Double.parseDouble(string.substring(start, index)); 
    			if ( relative ) {
    				xp1+=point.getX();
    				xp2+=point.getX();
    				xp3+=point.getX();
    				yp1+=point.getY();
    				yp2+=point.getY();
    				yp3+=point.getY();
    			}
    			path.curveTo(xp1, yp1, xp2, yp2, xp3, yp3);
    			point.setLocation(xp3, yp3);
    			return index;
    		}
     
    		// analyse la string SVG à partir de index pour déterminer les coordonnées (x et y) relatives ou absolues du prochain point et retourne la nouvelle position dans la description pour parser la suite
    		private static int parsePoint2D(int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++; // on passe les séparateurs (tout ce qui n'est ni un chiffre, ni un point, ni un moins)
    			int start=index; // la prochaine coordonnée commence ici (en index)
    			index = nextIndex(string, index); // on cherche la position du dernière caractère du nombre 
    			double x = Double.parseDouble(string.substring(start, index)); // la coordonnée se situe entre start inclus et index exclus, substring permet de récupérer cette partie, et parseDouble converti la chaine en nombre à virgule
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++; // on recommence pareil pour la seconde coordonnée
    			start=index;
    			index = nextIndex(string, index);
    			double y = Double.parseDouble(string.substring(start, index));
    			if ( relative ) { // en mode relatif,
    				point.setLocation(point.getX()+x, point.getY()+y); // on ajoute les 2 nombres trouvés respectivement à l'abscisse et à l'orgonnée
    			}
    			else { // en mode absolu
    				point.setLocation(x, y); // les deux nombres sont respectivement l'abscisse et l'ordonnée
    			}
    			return index; // en retourne la nouvelle position dans la description SVG pour continuer son analyse et terminer de créer le Path2D
     		}
     
    		// idem que parsetPoint2D mais ne parse qu'une seule coordonnée x
    		private static int parseHor2D(int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			int start=index;
    			index = nextIndex(string, index);
    			double x = Double.parseDouble(string.substring(start, index));
    			if ( relative ) {
    				point.setLocation(point.getX()+x, point.getY());
    			}
    			else {
    				point.setLocation(x, point.getY());
    			}
    			return index;
    		}
     
    		// idem que parsetPoint2D mais ne parse qu'une seule coordonnée y
    		private static int parseVert2D(int index, String string, Point2D point, boolean relative) {
    			while ( "-0123456789.".indexOf(string.charAt(index))<0 ) index++;
    			int start=index;
    			index = nextIndex(string, index);
    			double y = Double.parseDouble(string.substring(start, index));
    			if ( relative ) {
    				point.setLocation(point.getX(), point.getY()+y);
    			}
    			else {
    				point.setLocation(point.getX(), y);
    			}
    			return index;
    		}
     
    		// chercher la position de séparation entre une valeur double SVG dans string et la suivante, à partir de la position index
    		// permet de déterminer la fin d'un nombre (coordonnée) commençant en index.
    		private static int nextIndex(String string, int index) {
    			if ( string.charAt(index)=='-' ) index++; // on passe le signe -
    			while("0123456789.".indexOf(string.charAt(index))>=0) index++; // tant qu'on a un nombre ou un point, on avance
    			return index; // retourne la position trouvée
    		} 
     
    		/**
                     *               méthode qui permet de placer un texte relativement à un rectangle : elle calcule la position à utiliser avec la méthode Graphics.drawString()
                     * 
                     * @param g2d contexte graphique
                     * @param bounds bounds du rectangle
                     * @param string le texte
                     * @param halign le type d'alignement horizontal parmi SwingContants.LEFT, SwingConstants.CENTER ou SwingConstants.RIGHT
                     * @param valign le type d'alignement vertical parmi SwingContants.TOP, SwingConstants.CENTER ou SwingConstants.BOTTOM
                     * @return
                     */
    		public static Point2D.Float getStringLocation(Graphics2D g2d, Rectangle2D bounds, String string, int halign, int valign) {
     
    			final FontMetrics fontMetrics = g2d.getFontMetrics(); 
    	 		final Rectangle2D textBounds = fontMetrics.getStringBounds(string, g2d); 
    			final double textWidth = textBounds.getWidth(); 
     
    			double x,y; 
     
    			switch (halign) { 
    			case SwingConstants.LEFT: 
    				x = bounds.getX(); 
    				break;
    			case SwingConstants.RIGHT:
    				x = bounds.getX() + bounds.getWidth() - textWidth;
    				break;
    			case SwingConstants.CENTER:
    			default:
    				x = bounds.getX()
    				+ (bounds.getWidth() - textWidth) / 2;
    				break;
    			}
    			switch (valign) {
    			case SwingConstants.TOP:
    				y = bounds.getY() + fontMetrics.getAscent() - fontMetrics.getDescent();
    				break;
    			case SwingConstants.BOTTOM:
    				y = bounds.getY()
    				+ bounds.getHeight()  - fontMetrics.getDescent() ;
    				break;
    			case SwingConstants.CENTER:
    			default:
    				y = bounds.getY()
    				+ bounds.getHeight()/ 2  - ( ( fontMetrics.getAscent() + fontMetrics.getDescent() ) / 2 ) + fontMetrics.getAscent()  ;
    				break;
    			}	 
     
    			return new Point2D.Float((float)x, (float)y);
    		}
     
    }
    La classe d'implémentation du MapBox :
    Fichiers attachés Fichiers attachés
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #27
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    et si on doit mettre des donnees qui sont au niveau de la base comment cela va se passer

  8. #28
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Il faut modifier createRegions() pour que ça aille lire les données dans la base de données, c'est tout. Voir mon post 22.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #29
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    en faite j'avais deja creer une formulaire qui va permettre de saisir les donnees c'est a dire (nomregion, population, superficie) et les afficher avec opportunite de les modification mais la recuperation des donnees au niveau de la base et et afficher au niveau des region de la carte et voila la fonction que j'ai creer



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void afficher()
        {
            try
            {
                model.setRowCount(0);
                stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                  model.addRow(new Object[]{
      Rs.getString("id"), Rs.getString("libelle"), Rs.getString("nombre_logement")} );
                }
            }catch(Exception e){System.err.println(e);}
            tble.setModel(model);
        }

  10. #30
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Oui, et donc ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #31
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    jai inserer ce code qui marche parfaitement sur la base de donnees mais sa donne rien si je le met sur le code que vous m'avez donne

  12. #32
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    voici ce que j'ai ajouter sur le CreateRegions() mais sa donne rien





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class Logement extends javax.swing.JFrame {
    DB conn = new DB();
        Statement stm;
        ResultSet Rs;
        DefaultTableModel model = new DefaultTableModel();
     
     
        public Logement() {
            initComponents();
            model.addColumn("ID");
            model.addColumn("libelle");
            model.addColumn("NBRE-LOGEMENT");
     
     
            try
            {
                stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                    model.addRow(new Object[]{
      Rs.getString("id"), Rs.getString("libelle"), Rs.getString("nombre_logement")} );
                }
            }catch(Exception e){System.err.println(e);}
            tble.setModel(model);
     
        }
        private void afficher()
        {
            try
            {
                model.setRowCount(0);
                stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                  model.addRow(new Object[]{
      Rs.getString("id"), Rs.getString("libelle"), Rs.getString("nombre_logement")} );
                }
            }catch(Exception e){System.err.println(e);}
            tble.setModel(model);
        }

  13. #33
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le code que tu montres c'est une classe qui visiblement est chargé de remplir une JTable avec les données d'une requête;
    En particulier, cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                  model.addRow(new Object[]{
      Rs.getString("id"), Rs.getString("libelle"), Rs.getString("nombre_logement")} );
                }
    fait une requête sur la table region, et ajoute chaque enregistrement dans un modèle de JTable.
    Pour l'adapter, il te suffit au lieu d'ajouter chaque enregistrement à un modèle de JTable, il faut ajouter chaque enregistrement à un MapPanel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                  mapPanel.register( toRegion(  Rs.getString("id"), Rs.getString("libelle"), Rs.getString("nombre_logement")} ));
                }
    le toRegion c'est une méthode qui convertit les données lues dans la table en instance de MapRegion.
    Bien sûr, pour que ça fonctionne, le minimum est que la table contienne les informations qui sont nécéssaires, à savoir :
    • un nom de région
    • une forme de région (sous la forme d'un path SVG donc)
    • une couleur (pas obligatoire)
    • et des informations (celle que tu veux afficher au clic) : ce serait mieux d'avoir des informations séparées et de reconsituer le texte à partir d'elles, plutôt que de stocker le description. Maintenant, ça dépend de ce que tu comptes faire après : si tu risques d'avoir besoin de faire des sélections ou tris sur le nombre d'habitants, la superficie, etc, le mieux et d'avoir des champs séparés, sinon autant stocker un texte

    Avec les bonnes informations, tu peux ensuite créer l'instance de MapRegion, on revient au cas où on a récupéré ces informations dans un tableau comme je fais dans on exemple.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  14. #34
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    mais je me suis un peu perdu j'arrive pas à comprendre ce que vous voulez me dire

  15. #35
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le code suivant, c'est celui que tu m'as montré, c'est le tien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                  model.addRow(new Object[]{
      Rs.getString("id"), Rs.getString("libelle"), Rs.getString("nombre_logement")} );
                }
    Ce code parcourt le résultat de la requête, enregistrement par enregistrement... et ajoute une ligne dans un modèle de JTable pour chacun de ces enregistrements.
    Une ligne consiste en un tableau d'objets, donc chaque objet correspond à un champ de l'enregistrement correspondant.
    Jusque là ça va, tu comprends ?

    Et bien, c'est exactement pareil pour les MapRegion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                  mapPanel.register( toRegion(  Rs.getString("id"), Rs.getString("libelle"), Rs.getString("nombre_logement")} ));
                }
    Sauf qu'on ajoute pas des lignes dans un modèle de JTable, on ajoute des MapRegion dans un MapPanel (c'est le nom des classes de mon POC, mais tu peux les utiliser pour ton programme).
    Et c'est MapRegion, pour les construire, c'est pareil : on utilise des champs de la base de données, qui doivent exister. Eventuellement, il se peut que tu ne puisses pas modifier la base de données. Dans ce cas, il te faudra stocker ces données dans un fichier par exemple, ou dans une classe. Mais il va te falloir dans ce cas un moyen de retrouver l'information (le path, la couleur, tout ça), par rapport à l'enregistrement de base de données, comme tiliser l'id, bien que ça puisse poser un problème si les ids sont modifiés (la solution la plus sure étant d'avoir un champ code immuable, une sorte d'id, mais pas générer par la base, entré à la main et qu'on ne change jamais, mais là aussi, il te faut pouvoir modifier le modèle de base de données).

    Ensuite, il te suffit de construire une instance de MapRegion avec les informations lues dans la base et les informations de forme (path svg) et couleur récupérés par l'intermédiaire de l'id.

    Imaginons qu'on prenne l'id comme clef d'association.
    Donc, je reprend rapidement ce que peut être ta table region dans la base de données :

    id libelle nombre_logement surperficie je ne sais quoi d'autre...
    1 Dakar ... ... ...
    2 Diourbel ... ... ...
    3 Fatick ... ... ...

    Et bien, tu peux reprendre le tableau de régions comme je l'ai fait en ajoutant l'id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private final static String[][] SENEGAL_REGIONS = {
    			{"1", "M37.765,531.05l0.498,0.462l0.396,4.828l0.854,1.479l1.048,2.896l0.647,2.635l0.117,1.731l0.252,0.339l0.951,0.303l0.198,1.3l-0.174,1.208l-0.482,0.444l-1.468,0.342l-0.46,0.506l-0.025,0.293l0.373,0.041l-0.022,0.732l-0.493,2.504l1.133,0.989l-0.003,1.556l-0.704,3.099l0.673,1.922l-1.87,1.126l0,0l-1.386,-2.947l-3.44,-4.147l-5.689,-4.293l-1.219,-0.579l-1.316,-0.423l-0.332,0.277l-5.067,-2.192l-2.771,-0.719l-2.769,-0.034l-2.541,0.625l-1.006,0.643l-0.537,0.866l0.134,0.958l0.578,0.281l0.556,-0.117l0.068,0.57l-0.754,0.65l0.488,0.955l-0.111,0.336l-0.507,-0.118l-0.283,-0.586l-0.334,0.253l0.219,0.142l0.028,0.31l-0.274,0.112l0.63,0.366l0.137,0.141l0.411,0.141l-0.082,0.563l-0.987,0.453l-0.233,0.756l0.397,0.678l-0.384,0.451l-0.325,-0.85l-0.744,-0.531l0.109,-0.576l-0.466,-0.612l-1.069,-0.191l-0.137,-0.506l-0.295,0.398l-0.299,-0.174l-0.42,0.226l0.097,-1.048l-0.837,-0.811l0.384,-0.508l-1.398,-0.93l-0.274,-0.845l-0.658,0.028l-0.055,-0.282l-0.521,-0.112l-0.082,-0.761l-1.124,-1.183l-1.48,-0.282l0.384,-1.183l0.676,0.366l0.229,-0.311l0.736,0.07l0.113,-0.492l1.299,0.05l0.675,-0.275l0.74,-0.93l1.042,0.451l2.775,-0.535l7.204,-2.876l0.384,-0.366l0.247,0.142l0.11,-0.339l1.919,-0.423l0.274,-0.395l7.375,-3.1L37.765,531.05z","Dakar","#5BC4ED","Blahblah" },
    			{"2", "M101.156,561.749l-0.571,-1.517l-4.896,0.453l-2.245,-0.642l-0.039,-0.425l-1.345,-0.921l-0.985,-1.402l0.123,-0.323l-0.641,-0.172l-0.307,-0.748l-0.758,0.179l-0.334,-0.391l0.255,-0.972l-0.678,-0.167l0.108,-1.629l2.549,-3.529l1.178,-0.517l0.562,-1.851l-0.453,-0.148l-0.087,-0.836l0.387,-0.491l0.492,-2.009l-5.154,-4.347l0.549,-1.286l1.885,-1.671l-0.335,-2.032l-1.113,-1.494l-1.591,-1.298l-3.055,-3.92l0.522,-0.628l2.19,-2.004l1.752,-0.868l4.336,-0.918l6.312,-1.922l0.526,-0.213l-0.102,-0.691l3.128,-0.163l2.473,-1.621l2.85,-0.82l5.121,0.242l0.301,0.322l0.576,-0.167l1.446,0.347l0.705,-1.018l0.32,0.27l-0.296,0.895l1.931,0.601l0.415,-0.523l0.712,-0.047l0.623,0.549l-0.021,0.818l4.506,1.212l2.633,1.171l0.746,0.513l-0.305,0.467l0.345,1.501l1.103,-0.371l0.356,0.455l0.926,0.102l4.052,-1.1l0,0l2.456,-0.023l3.048,0.528l2.132,-0.416l1.695,0.13l1.911,-0.918l1.805,-0.453l2.67,0.861l2.022,1.057l0.676,-1.497l0.692,-0.648l3.841,0.165l0.17,-0.539l1.366,-1.081l1.148,-0.332l1.705,0.351l0.087,0.398l-0.343,0.321l6.167,-0.918l0.205,0.542l1.163,1.139l3.894,1.746l1.165,1.525l0.345,1.341l1.294,2.242l1.261,1.023l1.805,-0.166l1.551,-0.873l2.435,-3.345l0.776,-0.437l0.686,0.043l0.573,0.342l0.349,1.181l1.903,2.06l0.785,1.393l0.018,0.821l-0.515,0.91l2.437,1.114l1.623,0.422l-0.403,0.444l5.955,3.67l4.17,-1.512l1.243,-0.148l2.12,0.467l2.973,1.159l0.176,0.649l-0.244,1.761l1.441,0.823l0,0l-0.847,0.873l-2.024,4.314l-0.615,1.64l-0.219,1.562l-4.985,1.1l-4.162,3.498l-0.851,-0.029l0,0l-0.577,-0.831l-0.236,-1.324l-0.996,-0.894l-0.521,1.345l-0.461,-0.035l-2.089,-0.716l0.147,-1.709l-1.586,0.604l-1.477,-1.219l0.244,-1.572l-1.109,-0.103l-1.174,0.804l-1.033,-0.298l-1.137,0.56l-0.379,0.371l-0.135,2.343l-2.738,-1.656l-2.284,-0.796l-2.333,-1.597l-2.09,-1.002l-1.09,0.645l-0.757,3.952l0.605,4.495l-0.189,1.836l0.247,0.926l-1.11,3.352l-1.349,1.504l-3.079,2.237l-1.81,0.802l-2.543,0.542l-3.486,2.019l-4.618,0.01l-1.254,0.341l-2.139,-0.575l-1.909,-0.725l-0.661,-1.019l-0.07,-1.564l-2.863,0.274l-0.562,0.953l-2.53,-0.162l-0.626,0.204l-2.397,-0.343l-2.45,-0.957l-0.55,0.239l-0.134,-0.588l-0.388,-0.161l-0.844,0.316l-1.137,-0.398l0.008,-0.694l-0.307,-0.19l-1.234,0.303l-2.993,-1.542l-0.784,0.719l-3.576,-0.318l-1.371,0.026l-0.78,0.363l-1.898,-0.229l-0.718,-0.582l-1.674,-0.236l-0.647,-0.732l-0.966,-0.263l-0.253,-0.953l-1.42,-0.418l-1.699,0.914l-0.655,-0.431l-1.133,0.601l-0.639,-0.092l-0.724,0.366l-3.229,-0.004l-1.548,0.725l-1.672,-0.574L101.156,561.749z","Diourbel","#E6C199","Blahblah"},
    			{"3", "M87.786,656.963l0.494,0.981l0.411,0.141l0.027,0.392h0.521l0.542,0.617l0.527,0.112l-0.274,0.364l-1.207,-0.364l-1.289,-2.103L87.786,656.963zM89.239,653.823l0.603,0.981l-0.411,0.729l-0.713,0.477L89.239,653.823zM101.156,561.749l2.84,-0.25l1.672,0.574l1.548,-0.725l3.229,0.004l0.724,-0.366l0.639,0.092l1.133,-0.601l0.655,0.431l1.699,-0.914l1.42,0.418l0.253,0.953l0.966,0.263l0.647,0.732l1.674,0.236l0.718,0.582l1.898,0.229l0.78,-0.363l1.371,-0.026l3.576,0.318l0.784,-0.719l2.993,1.542l1.234,-0.303l0.307,0.19l-0.008,0.694l1.137,0.398l0.844,-0.316l0.388,0.161l0.134,0.588l0.55,-0.239l2.45,0.957l2.397,0.343l0.626,-0.204l2.53,0.162l0.562,-0.953l2.863,-0.274l0.07,1.564l0.661,1.019l1.909,0.725l2.139,0.575l1.254,-0.341l4.618,-0.01l3.486,-2.019l2.543,-0.542l1.81,-0.802l3.079,-2.237l1.349,-1.504l1.11,-3.352l-0.247,-0.926l0.189,-1.836l-0.605,-4.495l0.757,-3.952l1.09,-0.645l2.09,1.002l2.333,1.597l2.284,0.796l2.738,1.656l0.135,-2.343l0.379,-0.371l1.137,-0.56l1.033,0.298l1.174,-0.804l1.109,0.103l-0.244,1.572l1.477,1.219l1.586,-0.604l-0.147,1.709l2.089,0.716l0.461,0.035l0.521,-1.345l0.996,0.894l0.236,1.324l0.577,0.831l0,0l-0.067,2.552l0.325,2.455l1.266,1.433l1.04,0.379l-1.906,1.067l-0.431,-0.48l-6.715,5.424l0.095,2.646l-0.763,0.61l-2.875,-0.879l-0.84,0.094l-0.304,0.837l0.745,0.931l-0.649,0.241l0,0l-1.737,-1.141l-2.433,0.066l-0.815,0.382l-0.17,0.798l-0.556,0.765l-0.455,2.516l-0.798,0.951l-1.281,0.552l-2,0.11l-0.91,1.705l-1.458,5.115l-0.57,0.083l-8.556,-0.188l0.045,-6.605l-0.396,-0.67l-1.307,-0.161l-0.671,1.326l-0.583,0.39l-0.578,-0.251l-0.597,-0.923l-0.946,-0.716l-1.315,-0.328l-1.706,1.493l-0.209,1.111l-0.806,0.861l-1.58,0.275l-0.109,1.733l-1.38,1.467l0.161,0.858l-0.498,0.461l-1.748,0.733l-1.109,0.059l-1.03,-0.563l-2.813,-0.504l-1.461,1.035l-2.021,0.669l-2.383,-0.255l-2.347,0.226l-0.97,0.545l-0.797,1.109l-0.517,2.148l-5.006,-0.493l0.129,0.277l-0.792,0.529l0.223,0.951l-1.006,1.354l-0.434,0.221l-1.314,-0.732l-0.415,0.641l-0.395,-0.128l-0.613,0.673l-1.105,0.467l-0.227,0.771l-1.322,0.603l-0.157,0.346l-2.119,-0.27l-0.476,0.432l-0.603,2.141l-0.301,0.192l0.219,0.442l-0.958,0.339l0.864,0.556l-0.112,0.584l-0.269,0.329l-0.417,-0.002l-0.205,-0.535l-0.455,0.086l0.394,1.368l-0.268,1.526l1.442,1.03l-0.506,0.424l-0.645,-0.084l-0.145,0.344l0.476,0.608l0.4,-0.044l-0.143,0.383l-0.948,-0.456l-0.191,0.707l-0.486,-0.234l-0.207,0.981l-0.725,-0.011l0.531,0.712l0.902,-0.247l2.023,0.125l1.718,-0.565l2.958,0.212l1.668,1.298l2.152,0.797l3.143,2.66l0.424,2.683l-0.096,2.612l-0.519,0.822l-2.755,1.785l-0.305,0.999l-0.779,0.838l-0.232,1.211l0.121,0.356l1.043,0.692l0.171,-0.22l2.674,-0.225l1.575,0.481l-0.323,1.577l1.468,0.129l-0.066,1.562l0.704,1.019l0.529,5.412l-0.534,0.35l-0.762,2.002l-0.009,1.001l-0.396,0.21l-1.125,2.019l-1.84,-0.12l-0.462,0.224l0.868,0.973l-0.663,3.465l1.973,1.106l0.441,0.901l4.295,3.814l0.555,-0.552l0.49,-0.012l0.227,0.302l0.489,5.375l0.423,1.658l0.405,0.987l1.341,1.282l-0.108,0.908l1.295,0.161l-0.258,1.301l-1.413,0.706l0.102,0.678l1.119,0.649l-0.285,0.833l-0.802,0.685l0,0l-34.325,-0.067l-0.8,0.229l-4.728,-0.235l-0.091,-0.737l-0.425,-0.168l-0.91,0.536l-0.762,-1.555l-1.691,-1.316l0.174,-0.617l-0.92,-1.152l-1.943,-0.702l-1.801,-2.229l-0.533,-1.262l-0.33,-0.018v-2.804l0.502,-1.543l-1.569,-2.552l-0.615,-0.229l-2.569,-2.66l-0.218,0.253l-0.932,-0.141l-0.795,-1.458l-1.551,-0.82l-2.824,-0.737l-0.45,-0.665l-0.329,1.044l-0.329,0.141l-0.411,-6.201l0.384,-2.722l0.274,1.6l-0.247,2.554l0.192,1.739l0.322,0.337l-0.151,-9.663l-0.845,-0.227l-0.204,-0.662l-0.959,-11.684l0,0l0.931,-1.238l1.15,-0.06l-0.09,-2.131l-1.389,-1.517l0.094,-0.608l-2.238,-1.448l-0.267,-0.388l0.05,-0.607l0.657,-0.972l0.499,-0.145l0.871,0.331l1.16,-0.423l0.553,0.107l0.013,-0.59l-0.98,-1.421l0.595,-0.832l0.802,-0.249l0.792,-1.054l0.708,-0.092l1.003,-1.167l0.004,-1.377l-1.46,-0.77l-0.622,-0.878l0.301,-0.801l-0.372,-1.316l1.236,-0.518l0.921,-0.867l-0.577,0.014l-0.482,-0.691l2.542,-3.719l0.173,-0.943l-0.326,-4.112l0.507,-4.238l0.529,-1.072l0.213,-1.585l0.659,-0.775l4.101,0.24l1.414,-0.302l1.744,-1.875l2.222,-0.907l4.318,-3.648l1.495,-2.658l0.917,-3.637l-0.046,-0.735l0.945,-1.821L101.156,561.749z","Fatick","#E66166","Blahblah"},
    /*...*/
    Maintenant, quand tu vas lire les régions dans la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    stm = conn.obtenirconnexion().createStatement();
                ResultSet Rs = stm.executeQuery("Select * from region");
                while(Rs.next())
                {
                  mapPanel.register( toRegion(  Rs.getString("id"), Rs.getString("libelle"),/**, ...**/ ));
                }
    toRegion est une méthode qui va créé une instance de MapRegion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public MapRegion toRegion(String id, String nom /*... et des autres informations à afficher */) {
     
           /*...*/
     
           return new MapRegion(path, color, nom, data);
    }
    Il te faut passer au constructeur le MapRegion les paramètres pour créer une région. Et on a récupérer dans la base :
    • un id
    • un libellé, donc un nom
    • des informations diverses (la population, la superficie, etc.)

    Il manque donc le path (la définition de la forme de la région pour la dessiner), la couleur (pas obligatoire, mais c'est plus sympa et lisible surtout), le texte à afficher dans le JOptionPane (data).
    Pour le texte à afficher, il suffit de faire de la concaténation avec les diverses informatons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String data = "Le nombre d'habitant est " + nombreHabitant +"\La superficie est " + superficie + "km²";
    Ok, jusque là.
    Il nous manque encore la forme et la couleur : on va aller les chercher dans le tableau. On peut simplement parcourir le tableau (il y d'autres moyens plus efficace ou performant, mais on verra ça plus tard (ou tu regarderas toi-même, les Map). Donc, par parcours du tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Path2d pathDescription=null; // le chemin SVG
    Color color=null; // la couleur
    for(String[] region : SENEGAL_REGIONS ) {
        if ( region[0].equals(id) ) { // si la première colonne contient l'id de l'enregistrement de base de données, on a trouvé la bonne description de forme et de couleur
             pathDescripton = simpleSVGToPath2D(region[1]); // la description de la forme, c'est la colonne 1 dans le tableau
             color = toColor(region[2]); // la description de la couleur, c'est la colonne 2
             break; // on s'arrête, parce qu'on a trouvé ce qu'on cherchait
        }
    }
    // ici on peut tester si pathDescription ou color est null : si c'est le cas, il y a un problème (on a soit une région qui manque dans le tableau, soit une modification des ids dans la base)
    // ensuite on a toute les informations nécessaires pour créer une instance de MapRegion qui correspond à l'enregistrement lu en base.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  16. #36
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    bonjour,
    en faite jai developper ce programme par la methode Swing donc il' y a des package(mapping,model,ui) .
    dans le package mapping: contient la classe region
    dans la package model :contien l'implementation de region
    et dans package ui:contien les formulaire de connexion, et une formulaire qui ajoute,modifier supprime des region et leurs information depuis la base de donnees.

    mais ou est que je dois mettre les classe MapPanel et Mapbox? dans quel package?



    l'ajout, la modification et la suppression marche

  17. #37
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par diop.abdoulahi Voir le message
    mais ou est que je dois mettre les classe MapPanel et Mapbox? dans quel package?
    Peu importe, tu le mets où ça te convient. Dans le package ui par exemple, puisque c'est l'UI. Attention, je t'ai fait un exemple, peut-être faut-il adapter MapPanel (pas forcément tout recopier brut - le main par exemple tu peux l'enlever).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #38
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    Mr
    jusqu'a present j'essaie mais sa ne donne rien je sais pas pour quel raison


    ma base de donnee est : db_region
    nom table est : region( id, libelle, superficie)

  19. #39
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ça va être difficile de te répondre sans savoir ce que tu essayes (code) et sans un descriptif plus explicite de ce qui ne fonctionne pas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  20. #40
    Membre à l'essai
    Homme Profil pro
    genie logiciel
    Inscrit en
    Avril 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : genie logiciel
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 37
    Points : 11
    Points
    11
    Par défaut
    en fait la fonction qui recupere depuis la base de donner et d'afficher la superficie lorsqu'on clicke sur une region au niveau de la carte

Discussions similaires

  1. Besoin d'aide s'il vous plait
    Par miktifo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/11/2008, 23h22
  2. besoin d'aide s'il vous plait
    Par shinchan95'971 dans le forum Flash
    Réponses: 1
    Dernier message: 11/04/2008, 12h46
  3. AIDE S'IL VOUS PLAIT
    Par valencia 14 dans le forum Modélisation
    Réponses: 1
    Dernier message: 26/03/2008, 22h09
  4. Votre avis s'il vous plait, http://la.gargouille.free.fr
    Par la.gargouille dans le forum Mon site
    Réponses: 9
    Dernier message: 20/09/2007, 12h48
  5. javascript et mon formulaire et ma table de l'aide s'il vous plait
    Par chochatown dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/04/2007, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo