% Template GRASS newsletter - Article
% Language: Latex

\title{Introduction au projet MapWindow GIS}
\author{by Daniel P. Ames, Christopher Michaelis et Ted Dunsford, traduit par Sidonie Christophe}

\maketitle

\section{Introduction}
\label{sec:label_of_your_section}

MapWindow est un syst\`eme d'information g\'eographique (SIG) open source et une API distribu\'ee sous la licence MPL (Mozilla Public License), compil\'ee \`a partir du Framework 2.0 de Microsoft Dot Net.  Le projet est maintenu par un group actif de d\'eveloppeurs du monde entier qui proposent r\'eguli\`erement des mises \`a jour et des corrections de bugs sur le site web \url{MapWindow.org}.\footnote{MapWindow web site: \url{http://www.mapwindow.org}}.

En 2005, l'Agence de Protection de l'Environnment des Etats-Unis a adopt\'e MapWindow en tant que noyau de la plateforme SIG pour son logiciel d'analyse et de mod\'elisation des bassins versants, BASINS, utilis\'e par les professionnels de l'environnement \`a tous les niveaux du gouvernement US et internationalement. Par la suite, l'Universit\'e des Nations Unies ainsi que beaucoup d'autres entit\'es gouvernementales non-lucratives et d'entit\'es commerciales \`a travers le monde ont \'egalement adopt\'e MapWindow. En effet, sur la p\'eriode allant de novembre 2006 \`a juillet 2007, le logiciel a \'et\'e t\'el\'echarg\'e plus de 60 000 fois et la liste de diffusion compte plus de 7 000 membres. Il y a \'egalement actuellement 630 inscrits \`a la liste de diffusion des avertissements de modification de code et 43 contributeurs r\'eguliers au code source.

Les composants MapWindow et l'application utilisateur finale supporte la manipulation, l'analyse et la visualisation de donn\'ees g\'eospatiales dans plusieurs formats SIG standards.  Par cons\'equent, MapWindow est un outil cartographique, un syst\`eme de mod\'elisation SIG et une API SIG, sous une forme open source redistribuable, remarquable par sa simplicit\'e d'utilisation et pour son ex\'ecution sous Microsoft Windows. Cet article pr\'esente l'historique du projet, son \'etat actuel, quelques \'el\'ements-cl\'es et les objectifs futurs.

\section{Contexte du Projet}
\label{sec:label_of_your_section}

En 1998, des chercheurs de l'Universit\'e de l'Etat de l'Utah \`a Logan, Utah, Etats-Unis, utilisaient MapObjects LT 1.0 d'ESRI (Environmental Systems Research Institute) comme composant SIG dans plusieurs de leurs projets de recherche.  Cependant, les licences restrictives de redistribution et l'incapacit\'e \`a \'editer des vecteurs ou des fichiers de donn\'ees attributaires ou d'afficher et d'interagir avec des donn\'ees raster sont devenues de r\'eelles barri\`eres \`a l'utilisation de ce composant.

\begin{figure*}[htbp]
   \centering
   \includegraphics[scale=0.8]{./project_spotlight/ames/MapWindowFigure1.png}
   \caption{Interface MapWindow simple avec activation de l'\'editeur de Shapefile.}
   \label{fig:label_of_your_image}
\end{figure*}

En effet, les fonctions dynamiques et interactives qui exigent un acc\`es bas-niveau aux donn\'ees spatiales n'\'etaient pas bien support\'ees \`a cette \'epoque-l\`a par les composants de programmation SIG pour Windows distribu\'es de fa\c{c}on libre. Une approche alternative pour ces projets \'etait de passer \`a un syst\`eme SIG propri\'etaire (ArcView 3.1), proposant les outils n\'ecessaires sous forme d'extensions. Cependant, beaucoup d'applications en sciences environnementales et en ing\'enierie conviennent mieux \`a un environnement autonome. Ceci est  d\^u \`a la n\'ecessit\'e de distribuer l'outil \`a des individus qui ne poss\`edent pas leur propre plateforme SIG ou ne sont pas des experts SIG.

Le composant principal MapWinGIS a \'et\'e d\'evelopp\'e pour r\'epondre au besoin d'alternative aux composants SIG propri\'etaires existants. MapWinGIS est un contr\^ole ActiveX qui a la pleine capacit\'e d'afficher, de requ\^eter, de manipuler et d'utiliser des donn\'ees spatiales. A cause de la nature tr\`es technique des projets qui exigeaient son d\'eveloppement, MapWinGIS a \'et\'e particuli\`erement optimis\'e pour un affichage rapide des donn\'ees et est pr\'evu pour \^etre une interface de mod\'elisation compl\`etement fonctionnelle, et non pas un simple visualisateur de cartes. Les points principaux du d\'eveloppement ont concern\'e l'affichage tr\`es rapide des images et des rasters, la limitation du nombre de rafra\^ichissements et l'inclusion d'APIs pour l'acc\`es bas niveau aux donn\'ees.

L'application SIG bureau MapWindow englobe toutes les fonctionnalit\'es de l'ActiveX MapWinGIS, fournissant aux utilisateurs finaux une l\'egende commune, une barre d'outils et une interface coh\'erente qui peuvent \^etre am\'elior\'ees en ajoutant des plugins ou en personnalisant le fichier de configuration. En bref, l'ActiveX MapWinGIS a \'et\'e construit pour rajouter des fonctionnalit\'es SIG et pour personnaliser des applications utilisateurs, le SIG MapWindow a \'et\'e construit pour aider les utilisateurs \`a d\'eployer des applications SIG assembl\'ees \`a partir de plugins pr\'e-construits et de jeux de donn\'ees.

\section{Description du projet}

\subsection{L'application MapWindow GIS}

L'application MapWindow est un visualisateur de donn\'ees spatiales l\'eger avec une interface par d\'efaut intentionnellement \'epur\'ee afin de simplifier son utilisation et am\'eliorer son adaptabilit\'e \`a des utilisations sp\'ecifiques. L'IHM et les fonctionnalit\'es principales peuvent \^etre \'etendues avec des plug-ins et des scripts qui ajoutent les fonctionnalit\'es \`a la demande. L'application par d\'efaut peut \^etre elle-m\^eme personnalis\'ee pour changer l'ergonomie et m\^eme le nom de la barre titre \`a l'ex\'ecution. Par d\'efaut, la mise en page MapWindow inclut une carte, une l\'egende et un aper\c{c}u cartographique. Les boutons de la barre d'outils int\'egr\'es permettent de g\'erer les fichiers du projet (collections de couches de donn\'ees), d'imprimer et de naviguer sur la carte. La Figure 1 montre l'interface MapWindow avec le plugin Editeur de Shapefile activ\'e et avec la barre de titre personnalis\'ee pour un projet sp\'ecifique. Les plugins open source et les plugins commerciaux ont \'et\'e d\'evelopp\'es par les utilisateurs venant du monde entier pour une vari\'et\'e d'applications ; beaucoup d'entre elles sont disponibles au t\'el\'echargement sur le site web MapWindow.org. 

\begin{figure}[htbp]
   \centering
   \includegraphics[scale=0.7]{./project_spotlight/ames/MapWindowFigure2.png}
   \caption{Une application simple de cartographie}
   \label{fig:label_of_your_image}
\end{figure}

En plus des plugins int\'egr\'es, on peut personnaliser l'ergonomie de l'application MapWindow en changeant le fichier de configuration XML inclus \textit{default.mwcfg}. Les modifications de ce fichier concernent la barre de titre, l'\'ecran d'attente, la bo\^ite ``A propos de'', le plugin de chargement et la fen\^etre de param\'etrage de la mise en page, entre autres. Un fichier XML du projet permet aux utilisateurs de sauver la liste des couches de donn\'ees charg\'ees et les param\`etres de session. Le projet \textit{Newton Reservoir Information System} de la Figure 1 est un exemple de projet inclus dans le paquet d'installation de MapWindow. Toutes les donn\'ees charg\'ees dans MapWindow et tous les param\`etres (symbologie, plugins charg\'es et projection du projet) sont sauv\'es dans le fichier du projet.

\subsection{Plug-ins MapWindow}

MapWindow a une architecture extensible qui permet aux d\'eveloppeurs d'\'ecrire des plugins pour ajouter des fonctionnalit\'es utilisant Dot Net compatibles avec des langages tels que VB.Net ou C\#. Ceci est r\'ealis\'e en impl\'ementant un plugin sp\'ecifique d'interface dans un fichier DLL personnalis\'e qui est plac\'e dans le r\'epertoire de l'application et automatiquement d\'etect\'e \`a l'ex\'ecution. Les plugins peuvent aussi \^etre \'ecrits et compil\'es directement dans l'\'editeur de plugin MapWindow \'eliminant le besoin d'un environnement de d\'eveloppement externe. Le plugin d'interface de MapWindow fournit des capacit\'es \'etendues permettant au d\'eveloppeur de l'utiliser aussi peu ou autant que n\'ecessaire en vue de r\'ealiser un but particulier. Les plugins par d\'efaut de MapWindow incluent des outils pour l'\'edition de shapefiles et d'attributs, pour l'identification d'entit\'es ou la r\'ealisation de t\^aches classiques de g\'eotraitement. Les d\'eveloppeurs de plugins conservent tout le copyright et les droits de licence sur leur travail et par cons\'equent peuvent redistribuer leurs produits en tant que propri\'etaires, open source ou autrement si n\'ecessaire.

\begin{figure}[htbp]
   \centering
   \includegraphics[scale=1]{./project_spotlight/ames/MapWindowFigure3.png}
   \caption{Sch\'ema des composants de MapWindow 5}
   \label{fig:label_of_your_image}
\end{figure}

\subsection{Le contr\^ole ActiveX MapWindow}

Le composant principal MapWindow est un contr\^ole ActiveX, \textit{MapWinGIS.ocx} qui peut \^etre utilis\'e en Visual Basic ou n'importe quel langage qui supporte les ActiveX (par exemple C\#, Microsoft Access, Microsoft Excel). MapWinGIS a \'et\'e optimis\'e pour l'affichage rapide d'image et de raster, limitant le nombre de rafra\^ichissement, et incluant les APIs pour des acc\`es bas-niveau aux donn\'ees spatiales. Un simple programme en Visual Basic utilisant le contr\^ole et juste quelques lignes de code est pr\'esent\'e \`a la Figure 2.  

\section{D\'eveloppement en cours et travaux futurs}
\label{sec:label_of_another_section}

Les projets de d\'eveloppement de MapWindow incluent une mise \`a niveau de la structure du composant en version 5.0. Cette version se concentre sur l'incorporation des librairies GDAL (Geospatial data Access Library) et OGR Simple Feature Library pour le support de formats de donn\'ees additionnels et la Suite Net Topologie (NTS) pour le support topologique. La Version 5.0 cible aussi la compatibilit\'e OGC et une modularisation am\'elior\'ee. Un composant web bas\'e sur ASP.Net pour la r\'ealisation de cartographie et le g\'eotraitement en ligne a aussi \'et\'e introduit.

La version 5.0 introduit aussi une couche d'interface autour de chaque composant. En faisant \c{c}a, chaque composant donn\'e (par exemple MapWindow.Data) peut \^etre remplac\'e par un composant tiers si besoin est. En effet chaque code qui impl\'emente les interfaces sp\'ecifi\'ees sera compatible avec les autres composants MapWindow 5.0.  

Enfin, les composants de MapWindow 5.0 sont entierement mod\'elis\'es et d\'evelopp\'es dans Microsoft Dot Net (C $++$, C\#, and VB.Net) sauf pour les composants li\'es (GDAL et OGR) qui sont maintenus dans leur forme native. Ceci \'elimine de nombreux probl\`emes connus de longue date avec l'enregistrement COM sur la plateforme Windows. Un sch\'ema d'aper\c{c}u des composants MapWindow 5.0 et les liens entre composants planifi\'es est montr\'e sur la Figure 3.

\section{Conclusion}

Le projet MapWindow GIS est un effort dynamique et actif pour construire des outils SIG open source qui s'int\`egrent \'etroitement avec le logiciel d'exploitation Microsoft Windows. Soutenu par un grand nombre de sources de financement commerciales ou non-commerciales, de d\'eveloppeurs volontaires et des activit\'es de recherche d'\'etudiants, on s'attend \`a ce que ce projet se d\'eveloppe dans l'avenir et continue \`a \^etre un mod\`ele de r\'eussite open source pour le d\'eveloppement et l'utilisation de logiciels g\'eoinformatiques.

\address{Daniel P. Ames\\
Idaho State University\\
\url{http://www.hydromap.com/}\\
\email{dpames AT gmail.com}}

\address{Chris Michaelis\\
Idaho State University\\
\url{http://www.happysquirrel.com/}\\
\email{cmichaelis AT happysquirrel.com}}

\address{Ted Dunsford\\
Idaho State University\\
\url{http://www.MapWindow.org/}\\
\email{hadunsford AT mapwindow.org}}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: main_document.tex
%%% End: 

