function suisse(h)
%
% La fonction SUISSE(H) représente la carte de la Suisse.
% SUISSE représente au trait tous les cantons et les lacs.
% SUISSE(H) représente les cantons et les lacs remplis.

% Initialisation
if nargin==0 	% pas de remplissage
	r=0;
	co='ymcrgbw';
else			% avec remplissage
	r=1;
	% Palette des couleurs
	colormap(h);
end
legende=0;		% avec ou sans légende

% chargement des données
load suisse
load lacs

% Cantons
C=['AG';'SG';'BE';'BL';'VD';'GE';'GL';'GR'; ...
  'JU';'LU';'NE';'NW';'OW';'AI';'SH';'SO';'SZ';'TG'; ...
  'TI';'UR';'FR';'VS';'ZG';'ZH'];
NbC=[1 1 2 1 2 2 1 1 1 1 1 1 1 1 1 3 1 1 2 1 4 1 1 1];
[n,m]=size(C);

for i=1:n
	if NbC(i)==1
		eval(['x=',C(i,:),'(:,1);']);
		eval(['y=',C(i,:),'(:,2);']);
		if r, fill(x,y,h(i,:)), else, plot(x,y,co(rem(i,7)+1)), end
		maxx(i)=max(x);
		minx(i)=min(x);
		maxy(i)=max(y);
		miny(i)=min(y);
	else
	  maxx(i)=-100;, minx(i)=1000;, maxy(i)=-100;, miny(i)=1000;
	  for j=1:NbC(i)
		eval(['x=',C(i,:),int2str(j),'(:,1);']);
		eval(['y=',C(i,:),int2str(j),'(:,2);']);
		if r, fill(x,y,h(i,:)), else, plot(x,y,co(rem(i,7)+1)), end
	    maxx(i)=max([maxx(i); x]);
		minx(i)=min([minx(i); x]);
		maxy(i)=max([maxy(i); y]);
		miny(i)=min([miny(i); y]);
	  end
	 end
	 hold on
end

% Lacs
for i=1:26
	eval(['x=L',int2str(i),'(:,1);']);
	eval(['y=L',int2str(i),'(:,2);']);
	if r, fill(x,y,'b'), else, plot(x,y,'b'), end
end

if legende, 
	for i=1:n
		text((maxx(i)+minx(i))/2,(maxy(i)+miny(i))/2,C(i,:))
	end
end
% Affichage
set(gcf,'name','Suisse');
set(gcf,'numbertitle','off');
axis('equal')
axis('off')
figure(gcf)
hold off
