%\title{Automatic Generation of Web-Based GIS/Database Applications}
\title{G\'en\'eration Automatique d'Applications SIG / Base de donn\'ees sur Internet}
\author{Nirut Chalainanont, Junya Sano and Toshimi Minoura, traduit par Marie Silvestre}

\maketitle

%\section{Abstract}
\section{R\'esum\'e}
\label{sec:Abstract}

%We have been developing \emph{web-based GIS/database} (WebGD) applications that allow users to \emph{insert}, \emph{query}, \emph{update}, and \emph{delete geographical features} and the data associated with them from standard Web browsers.  The code shared by these applications is organized as the WebGD framework.  The behavior of the map interface of a WebGD application is defined by \emph{configuration files}.  We have built also the WebGD application generator (WebGD-Gen) that \emph{automatically} produces those configuration files from the database metadata, including those in tables \nohyphens{\texttt{geometry\_columns} and \texttt{spatial\_ref\_sys}}.  WebGD-Gen can generate also Web scripts that interact with the map interface and the database.  Thus the WebGD framework and WebGD-Gen can significantly reduce the development time and the maintenance cost of a complex Web-based GIS/database application.	
Nous avons d\'evelopp\'e des applications Internet SIG / base de donn\'ees (WebGD) qui permettent aux utilisateurs d'\emph{ajouter}, \emph{interroger}, \emph{mettre \`a jour}, et \emph{supprimer des entit\'es g\'eographiques} ainsi que leurs donn\'ees attributaires \`a partir d'un navigateur Internet standard. Le code que partagent ces applications est organis\'e comme un framework WebGD. Le comportement de l'interface cartographique d'une application WebGD est d\'efini par des \emph{fichiers de configuration}. Nous avons \'egalement un g\'en\'erateur d'application WebGD (WebGD-Gen) qui produit \emph{automatiquement} ces fichiers de configuration \`a partir des m\'etadonn\'ees de la base de donn\'ees, incluant celles des tables \nohyphens{\texttt{geometry\_columns} et \texttt{spatial\_ref\_sys}}. WebGD-Gen permet \'egalement de g\'en\'erer des scripts Web qui interagissent avec l'interface cartographique et la base de donn\'ees. Le framework WebGD et WebGD-Gen permettent donc de r\'eduire significativement les temps de d\'eveloppement et les co\^uts de maintenance d'une application Internet SIG / base de donn\'ees complexe.


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

%The Internet has become the major venue for sharing information.  A dynamic Web-based mapping application allows users without desktop-based GIS software to perform \emph{spatial queries} and produce maps with standard Web browsers.
Internet est devenu le lieu de pr\'edilection pour le partage de l'information. Une application de cartographie dynamique sur Internet permet aux utilisateurs, sans avoir recours \`a un logiciel de SIG bureautique, d'effectuer des \emph{requ\^etes spatiales} et de produire des cartes sur un navigateur Internet standard.

%However, a typical web-based GIS application allows only the retrieval of maps and map-related data.  A web server provides information to the client, but the client cannot feed information back to the server \citep{Kingston:1998}.  This \emph{unidirectional} flow of information is a major problem with a current typical map-server application.  Furthermore, creating an interactive web application with a map interface is time-consuming.  Commercial map servers and geographical database management systems are expensive.  This situation hinders use of Web-based GIS applications in data gathering, analysis and decision-making.
Cependant, une application SIG sur Internet typique permet simplement de r\'ecup\'erer des cartes et des donn\'ees relatives \`a ces cartes. Un serveur web fournit des informations au client mais le client ne peut pas renvoyer des informations au serveur \citep{Kingston:1998}. Ce flux d'informations \emph{unidirectionnel} est un probl\`eme majeur des applications cartographiques sur Internet actuelles. De plus, cr\'eer une application Internet interactive avec une interface cartographique prend du temps. Les serveurs cartographiques propri\'etaires et les syst\`emes de gestion de base de donn\'ees g\'eographiques co\^utent cher. Cette situation freine l'utilisation d'applications SIG Internet destin\'ees \`a rassembler des donn\'ees, \`a l'analyse et \`a la prise de d\'ecision.

%We have been developing a set of tools that significantly reduces the cost of application development \cite{Wangmutitakul et al.:2003,Wuttiwat et al.:2003,Sano et al.:2003,Wangmutitakul et al.:2004}.  The code shared by interactive Internet GIS applications is organized as the Web-based GIS/database (WebGD) framework.  Most of the complex workings for delivering GIS functions over the Web are included in this framework.  With the WebGD framework, we can create a map interface through which users can \emph{insert, query}, and \emph{delete} geographical features and the data associated with them only by providing \emph{configuration files}.
Nous avons d\'evelopp\'e une s\'erie d'outils qui permettent de r\'eduire significativement le co\^ut des d\'eveloppements \cite{Wangmutitakul et al.:2003,Wuttiwat et al.:2003,Sano et al.:2003,Wangmutitakul et al.:2004}. Le code partag\'e par les applications SIG Internet interactives est organis\'e comme un framework Internet SIG / base de donn\'es (WebGD). La plupart des fonctions complexes qui produisent des fonctions SIG sur Internet sont inclus dans ce framework. Avec le framework WebGD, en utilisant uniquement des \emph{fichiers de configuration}, on peut cr\'eer une interface cartographique permettant aux utilisateurs d'\emph{ajouter, interroger}, et \emph{supprimer} des entit\'es g\'eographiques ainsi que leurs donn\'ees attributaires

%An important feature of a WebGD application is that it tightly integrates spatial data and associated tabular data, enabling analyses involving location-based data \cite{Sharma:2003}.  These functions are available to users at different geographical locations for economical and timely data management.
Une fonctionnalit\'e importante d'une application WebGD est qu'elle int\`egre compl\`etement les donn\'ees spatiales et leur donn\'ees attributaires, ce qui permet d'effectuer des analyses spatiales sur les donn\'ees \cite{Sharma:2003}. Ces fonctions sont \`a la disposition des utilisateurs sur des zones g\'eographiques diff\'erentes, pour des questions de gestion \'economique et rapide des donn\'ees.

%We developed several years ago a \emph{Web-form generator} that automatically generates scripts for traditional Web-forms from the \emph{schema} of a relational database \cite{Eum et al.:2003}.  This functionality was recently extended as the WebGD application generator (WebGD-Gen).  The new application generator can produce most of the code for an entire \nohyphens{WebGD} application from the schema of a relational database and the information on \emph{geometry columns}.  With the map interface and the Web scripts automatically generated, geographical features (i.e., points, linestrings and polygons) can be \emph{inserted}, \emph{queried}, and \emph{deleted}.  Thus, when a relational schema and the GIS metadata for the map layers are available, a \emph{non-customized} application can be quickly assembled with the WebGD framework and the WebGD-Gen application generator.
Il y a quelques ann\'ees, nous avons d\'evelopp\'e un \emph{g\'en\'erateur de formulaires web} qui g\'en\`ere automatiquement des scripts pour des formulaires traditionnels \`a partir du \emph{sch\'ema} d'une base de donn\'ees relationnelle \cite{Eum et al.:2003}. Cette fonctionnalit\'e a \'et\'e r\'ecemment \'etendue en g\'en\'erateur d'applications WebGD (WebGD-Gen). Ce nouveau g\'en\'erateur d'applications peut produire la plupart du code pour une application \nohyphens{WebGD} \`a partir du sch\'ema relationnel d'une base de donn\'ees et les informations concernant les \emph{geometry columns}. Avec l'interface cartographique et les scripts web g\'en\'er\'es automatiquement, les entit\'es g\'eographiques (par exemple des points, des lignes et des polygones) peuvent \^etre  \emph{ajout\'es}, \emph{interrog\'es}, et \emph{supprim\'es}. Ainsi, si un sch\'ema relationnel et des m\'etadonn\'ees sur les couches sont disponibles, une application \emph{non-personnalis\'ee} peut rapidement \^etre mise en place gr\^ace au framework WebGD et au g\'en\'erateur d'applications WebGD-Gen.

%The automatic generation of the map interface and Web-form scripts make possible \emph{incremental} and \emph{iterative} development of complex web-based GIS applications.  When a map layer is added or modified, we only need to create or update the configuration file for that layer and then regenerate the Web forms for that layer.  When a database schema is modified, we can regenerate the entire set of Web scripts in several minutes.  Therefore, even with an incomplete set of map layers and a database schema, we can generate a working prototype for an initial review.  Furthermore, we can fix most of the software bugs by modifying only the shared code in the WebGD framework or WebGD-Gen and then by regenerating Web scripts for each application.
La g\'en\'eration automatique d'interfaces cartographiques et de scripts pour formulaires web rend possible le d\'eveloppement \emph{incr\'emental} et \emph{it\'eratif} d'applications SIG Internet. Lorsqu'une couche g\'eographique est ajout\'ee ou modifi\'ee, il suffit de cr\'eer ou de mettre \`a jour le fichier de configuration concernant cette couche puis de r\'eg\'en\'erer le formulaire web pour cette couche. Lorsqu'un sch\'ema de base de donn\'ees est modifi\'e, il est possible de r\'eg\'en\'erer int\'egralement le set de scripts web en quelques minutes. Ainsi, m\^eme avec un jeu de couches g\'eographiques et sch\'ema de base de donn\'ee partiel, il est possible de g\'en\'erer un prototype fonctionnel pour de premiers tests. De plus, la plupart des bugs peuvent \^etre corrig\'es en modifiant simplement le code partag\'e dans le framework WebGD ou dans WebGD-Gen puis en r\'eg\'en\'erant les scripts web pour chaque application.


%WebGD applications use the following \emph{open-source} software components.  PostgreSQL, an \emph{object-relational} database, and PostGIS together manage geospatial data.  PostGIS is an extension of PostgreSQL for GIS applications \cite{Ramsey}.  MapServer \cite{UnivOfMinnesota} generates maps to be displayed on a web browser by using geospatial data provided by PostGIS.  Web pages, including the one that displays the maps, are generated by server-side scripts written in PHP.  The PHP MapScript module interacts with MapServer \cite{McKenna,DMSolutions}.  When a request to insert or delete a map feature is received by a PHP script, the script directly accesses the PostgreSQL database, using the PostGIS extension.  An application developed runs on a PC without any licensed software.
Les applications WebGD utilisent les composants \emph{open-source} suivants. PostgreSQL, un syst\`eme de gestion de base de donn\'ees \emph{relationnel-objet}, et PostGIS permettent de g\'erer les donn\'ees spatiales. PostGIS est une extension de PostgreSQL pour les applications SIG \cite{Ramsey}. MapServer \cite{UnivOfMinnesota} g\'en\`ere les cartes qui sont visualis\'ees par un navigateur web \`a partir des donn\'ees spatiales fournies par PostGIS. Les pages web, dont celle qui affiche les cartes, sont g\'en\'er\'ees par des scripts PHP c\^ot\'e serveur. Le module PHP MapScript interagit avec MapServer \cite{McKenna,DMSolutions}. Lorsqu'une requ\^ete d'ajout ou de suppression d'une entit\'e g\'eographique est re\c{c}ue par un script PHP, celui-ci acc\`ede directement \`a la base de donn\'ees PostgreSQL en utilisant l'extension PostGIS. Ce genre d'applications tournent sur un PC sans aucun logiciel propri\'etaire.

%We explain the features supported by the WebGD framework in Section \textbf{WebGD Applications}.  The process of generating map-layer configuration files is explained in Section \textbf{WebGD Framework}, and that of generating Web scripts in Section \ref{sec:AutomaticGenerationOfWebFormScripts}.  The process of automatic generation of map-layer configuration files is explained in Section \textbf{Automatic Generation of Map-Layer Configuration Files}.  In Section \textbf{WebGD Development History}, we describe a brief history of the development of the WebGD framework and WebGD-Gen.  Section \textbf{Conclusions and FutureWork} concludes this paper.
Nous d\'etaillons les fonctionnalit\'es du framework WebGD dans la partie \textbf{Applications WebGD}. Le processus de g\'en\'eration des fichiers de configuration des couches g\'eographiques est d\'etaill\'e dans la partie \textbf{Framework WebGD} et celui de la g\'en\'eration des scripts web dans la partie \ref{sec:AutomaticGenerationOfWebFormScripts}. Le processus de g\'en\'eration automatique des fichiers de configuration des couches g\'eographiques est expliqu\'e dans la partie \textbf{G\'en\'eration automatique des fichiers de configuration des couches g\'eographiques}. La partie \textbf{Historique du D\'eveloppement de WebGD} se consacre \`a un bref historique du d\'eveloppement du framework WebGD et de WebGD-Gen. La partie \textbf{Conclusions et travaux \`a venir} conclue cet article.

%\section{WebGD Applications}
\section{Applications WebGD}
\label{sec:WebGD_Applications}

%The Web interface of one of the WebGD applications, Natural Heritage Information System (NHIS) for North Carolina, is shown in Figure \ref{fig:NHIS_App}.  This application provides a map interface for a copy of the Biotics 4.0 database maintained by the North Carolina Natural Heritage Program.  Biotics 4.0 is a desktop GIS application built on the database developed by NatureServe.  The key elements in this database are \emph{element occurrences} (EOs), which are \emph{areas} of land and/or water in which species are, or were present \cite{NatureServe:2002}.  EO records have both \emph{spatial} and \emph{tabular} data, and the database contain approximately 700 relational tables \cite{Fogelsong:2002}. The Biotics Mapper implemented with ArcView by NatureServe provides a map interface that allows EO representations and associated data to be created, updated, and deleted \cite{NatureServe:2003}.  In our implementation, we can perform these operations with standard Web browsers.  Also, Web forms, approximately 3500 in total, are provided for all tables in the database.
la figure \ref{fig:NHIS_App} montre l'interface web d'une des applications WebGD, le ``Natural Heritage Information System'' de Caroline du Nord (NHIS). Cette application fournit une interface cartographique pour une copie de la base de donn\'ees Biotics 4.0 maintenue par le ``North Carolina Natural Heritage Program''. Biotics 4.0 est une application SIG bureautique bas\'ee sur la base de donn\'ees d\'evelopp\'ee par NatureServe. Les \'el\'ements cl\'es de cette base sont les \emph{occurrences d'\'el\'ements} (EOs) qui correspondent aux \emph{zones} terrestres et/ou aquatiques dans lesquelles les esp\`eces sont pr\'esentes ou ont \'et\'e pr\'esentes \cite{NatureServe:2002}. Les enregistrements d'EO sont compos\'es \`a la fois de donn\'ees \emph{spatiales} et de donn\'ees \emph{tabulaires}, et la base de donn\'ees contient environ 700 tables relationnelles cite{Fogelsong:2002}. L'extension Biotics Mapper impl\'ement\'ee dans ArcView par NatureServe fournit une interface cartographique qui permet de repr\'esenter, cr\'eer, mettre \`a jour et supprimer les EOs et les donn\'ees attributaires \cite{NatureServe:2003}. Dans notre impl\'ementation, nous pouvons r\'ealiser toutes ces op\'erations \`a partir d'un simple navigateur Internet. De plus, des formulaires web, environ 3500 au total, sont g\'en\'er\'es pour toutes les tables de la base de donn\'ees.

\begin{figure*}[htbp]
\centering
\includegraphics[width=.8\textwidth]{proceedings/minoura/NHIS_App.png}
%\caption{Interface of the NHIS Application for North Carolina}
\caption{Interface de l'application NHIS de Caroline du Nord}
\label{fig:NHIS_App}
\end{figure*}


%The NHIS application enables \emph{bi-directional} movement of \emph{geospatial data} as well as ordinary data.  Scientists and others with proper authentication can \emph{insert}, \emph{query}, and \emph{delete} geographical features such as EO polygons, lines, and points, as well as the data associated with them.  Queries can be executed by spatially \emph{selecting an area} on the map or by using a traditional web form.  In addition, one-meter resolution \emph{digital orthographic quadrangles} {DOQ}, or aerial images, are included as a layer.  When DOQ images are combined with other map layers such as highways, county boundaries, streams, and streets, locations can be easily pinpointed by taking advantage of features between map layers \cite{Wuttiwat et al.:2003}.
L'application NHIS permet des transferts \emph{bi-directionnels} de \emph{donn\'ees spatiales} aussi bien que de donn\'ees ordinaires. Les scientifiques ou autres personnes disposant des droits n\'ecessaires peuvent \emph{ajouter}, \emph{interroger} et \emph{supprimer} des entit\'es g\'eographiques telles que des polygones EO, des lignes, des points ainsi que des donn\'ees attributaires. Des requ\^etes peuvent \^etre effectu\'ees en \emph{s\'electionnant des zones} sur la carte ou en utilisant un formulaire web traditionnel. De plus, des images \emph{orthorectifi\'ees} ou des photos a\'eriennes dont la r\'esolution est d'un m\`etre sont disponibles en tant que couche. Lorsque ces images sont combin\'ees avec d'autres couches cartographiques telles que les autoroutes, les limites de comt\'es, le r\'eseau hydrographique et les rues, des lieux peuvent \^etre facilement localis\'es gr\^ace \`a la superposition des couches \cite{Wuttiwat et al.:2003}.

%The major operations supported by the map interface of a WebGD application are as follows:
Les op\'erations principales propos\'ees par l'interface cartographique d'une application WebGD sont les suivantes :

\begin{enumerate}
%\item To retrieve information on the geographical features in the area of interest, the user can zoom in/out to that area by using the map navigation tools.  If the user zoom-in enough, one-meter resolution aerial photos are displayed.  The user can also go to a new area by selecting an entry in the \textbf{Quick View} menu.
\item Pour r\'ecup\'erer des informations concernant des entit\'es g\'eographiques d'une zone d'int\'er\^et, l'utilisateur peut zoomer ou d\'ezoomer sur cette zone en utilisant les outils de navigation cartographique. Si l'utilisateur zoome suffisamment, les images a\'eriennes d'un m\`etre de r\'esolution deviennent visibles. L'utilisateur peut \'egalement se d\'eplacer vers une nouvelle zone en la s\'electionnant dans la liste des \textbf{raccourcis}.
%\item To get information about a geographical feature, the user can select a layer in the legend and \textbf{Information} in the function menu, and then click the boundary of the feature.
\item Pour obtenir des informations sur une entit\'e g\'eographique, l'utilisateur peut s\'electionner la couche dans la l\'egende et le bouton \textbf{Information} dans la barre d'outils puis cliquer sur les limites de cette entit\'e.
%%%\item Function \textbf{Insert} allows a geographical feature to be added with mouse clicks on the map.  \textbf{Done} need be pressed after all points are entered.
\item La fonction \textbf{Insert} permet d'ajouter une entit\'e g\'eographique par clic sur la carte. Le bouton \textbf{Done} doit \^etre press\'e une fois que tous les points ont \'et\'e rentr\'es.
%\item Function \textbf{Search by Area} allows the user to retrieve the list of features that are within a \emph{bounding box} specified on the map and that satisfy a search condition.  The features that satisfy the search condition are \emph{highlighted} on the map.  Furthermore, the user can select features in the list by marking the checkboxes associated with them.  Then, if the map is refreshed, the selected features are highlighted.
\item La fonction \textbf{Search by Area} permet aux utilisateurs de r\'ecup\'erer une liste d'entit\'es comprises dans un \emph{rectangle d'emprise} sp\'ecifi\'e sur la carte et qui satisfont les crit\`eres de recherche. Ces entit\'es sont mises en \emph{surbrillance} sur la carte. De plus, l'utilisateur peut s\'electionner des entit\'es dans la liste en cochant les cases qui leur sont associ\'ees. Ensuite, la carte est actualis\'ee et les entit\'es s\'electionn\'ees sont mises en surbrillance.
%\item The data administration interface can be activated by clicking on the \textbf{Database} entry in the menu bar below the banner.  A tree icon can be clicked to display a \emph{treeview} for browsing.  The treeview for \textbf{Higher Taxonomy} is the major one.  To access the data of this application, a user must login with a password as some data on endangered species are confidential.  
\item L'interface d'administration des donn\'ees peut \^etre activ\'ee en cliquant sur \textbf{Database} dans la barre de menu sous la banni\`ere. On peut cliquer sur un ic\^one pour afficher une \emph{arborescence} que l'on peut parcourir. L'arborescence pour les \textbf{taxons} est la principale. Comme certaines donn\'ees sur les esp\`eces menac\'ees sont confidentielles, l'utilisateur doit s'authentifier avec un mot de passe pour acc\'eder aux donn\'ees de cette application.
\end{enumerate}

%\noindent Several WebGD applications created with the WebGD framework and WebGD-Gen can be accessed from this page.\footnote{WebGD sample applications: \url{http://yukon.een.orst.edu/index_webgd.html}  You may insert/query/update/delete data.  However, please DO NOT disturb existing data.  If login is required, use user name \texttt{cs540} and password \texttt{CSxyz540}.  You may have to login twice, once for the server and then for an application.}
\noindent Plusieurs applications WebGD cr\'e\'ees avec le framework WebGD et WebGD-Gen sont accessibles sur cette page.\footnote{Exemples d'applications WebGD : \url{http://yukon.een.orst.edu/index_webgd.html} Vous pouvez y ajouter/interroger/mettre \`a jour/supprimer des donn\'ees. Cependant, NE DISTRIBUEZ PAS ces donn\'ees. Si un login est demand\'e, utilisez le nom d'utilisateur \texttt{cs540} et le mot de passe \texttt{CSxyz540}. Il est possible que vous ayez \`a vous authentifier deux fois, une fois pour le serveur puis une fois pour une application.}

%The first application is Natural Heritage Information System.  Although this application can cover the whole USA or the world, the data are currently available only for North Carolina.  The second application provides a map interface for an application that keeps track of conservation practices on land parcels.  The third one is a Web-based mapping application for plant germplasm collection maintained at Western Regional Plant Introduction Station (USDA-ARS).  The fourth one allows the soil information at the location where a mouse click occurs on the map interface to be retrieved.
La premi\`ere application propos\'ee est le ``Natural Heritage Information System''. Bien que cette application couvre tout les USA ou le monde, les donn\'ees actuellement disponibles ne couvrent que la Caroline du Nord. La deuxi\`eme application fournit une interface cartographique pour une application qui suit les pratiques de conservation sur des parcelles de territoire. La troisi\`eme est une application cartographique sur Internet pour la collection de plantes germplasm maintenue \`a la ``Western Regional Plant Introduction Station'' (USDA-ARS). La quatri\`eme application permet de r\'ecup\'erer les informations sur le sol \`a l'endroit s\'electionn\'e par clic sur l'interface cartographique.

%One salient feature of the current WebGD framework is \emph{dynamic switching of spatial references}.  Typically, different geographic regions and localities have preferred \emph{map projections} in order to avoid distortions in the maps created \cite{Dana}.  The framework allows the whole world to be covered with multiple-levels of maps, e.g., the world map, continent maps, and region maps.  The map interface then automatically selects the most suitable projection for the region whose portion is displayed.  For example, the world can use the \emph{geographical coordinate system}, the United States the \emph{Albers equal-area projection}, and Oregon the \emph{Lambert conformal conic projection}.  Thus, spatial analysis can be performed with the most appropriate projection for a particular area.  The \emph{dynamic switching} of the \emph{spatial reference}, the \emph{map file}, the \emph{legend}, and the \emph{quick view menu} supported by the current WebGD framework allows any part of the world to be covered with its own scale and spatial reference, including regions with one-meter resolution aerial images.  This is a very important feature, especially now that the cost of storing aerial images for the entire US has dropped to affordable levels (10 terabytes needed to store aerial images for the entire US now cost around \$10,000).  Furthermore, many states are putting aerial images in the public domain.
Une caract\'eristique remarquable du framework WebGF actuel est la possibilit\'e de \emph{changer dynamiquement de syst\`eme de r\'ef\'erence spatiale}. Typiquement, chaque r\'egion g\'eographique ou localit\'e a des \emph{projections recommand\'ees} de mani\`ere \`a \'eviter les distorsions sur les cartes cr\'e\'ees \cite{Dana}. Le framework permet de couvrir le monde entier avec des cartes diff\'erentes \`a diff\'erentes \'echelles, par exemple la carte du monde, celle d'un continent ou d'une r\'egion. L'interface cartographique s\'electionne automatiquement la projection la mieux adapt\'ee \`a la zone g\'eographique affich\'ee. Par exemple, pour le monde on peut utiliser un \emph{syst\`eme de coordonn\'ees g\'eographiques}, pour les USA la \emph{projection \'equivalente Albers} ou pour l'Oregon la \emph{projection conique conforme Lambert}. Les analyses spatiale peuvent donc se faire en utilisant la projection la mieux adapt\'ee pour une r\'egion particuli\`ere. Le \emph{changement dynamique} de \emph{r\'ef\'erence spatiale}, le \emph{fichier de configuration de la carte}, la \emph{l\'egende} et les \emph{raccourcis} support\'es par le framework WebGD permettent de couvrir n'importe qu'elle partie du monde ayant sa propre \'echelle et son propre syst\`eme de r\'ef\'erence spatiale, y compris les r\'egions couvertes par des images a\'eriennes d'un m\`etre de r\'esolution. Il s'agit d'une fonctionnalit\'e tr\`es importante d'autant plus qu'aujourd'hui le co\^ut de stockage d'images a\'eriennes sur les Etats-Unis entiers devient abordable (les 10 t\'eraoctets n\'ecessaires pour stocker des images a\'eriennes sur tous les USA co\^utent actuellement environ \$10,000). De plus, beaucoup d'Etats reversent leurs images a\'eriennes dans le domaine public.

%\section{WebGD Framework}
\section{Framework WebGD}
\label{sec:WebGD_Framework}

%The WebGD framework supports common features required by the map interface of a WebGD application such as zoom in/out, pan, and insert/query/update/delete operations of geographical features.  The organization of a WebGD application is shown in Figure \ref{fig:Organization}.
Le framework WebGD propose les fonctionnalit\'es de base de l'interface cartographique d'une application WebGD telles que le zoom, le d\'eplacement sur la carte et les op\'erations d'ajout/interrogation/mise \`a jour/suppression sur les entit\'es g\'eographiques.

\begin{figure*}[htbp]
\centering
\includegraphics[width=.8\textwidth]{proceedings/minoura/Organisation.png}
%\caption{Organization of a WebGD Application}
\caption{Organisation d'une Application WebGD}
\label{fig:Organization}
\end{figure*}

%A map operation that does not manipulate geometry features, e.g., \emph{zoom-in}, \emph{zoom-out}, or \emph{panning}, is processed as follows:
Une op\'eration sur la carte qui ne manipule pas la g\'eom\'etrie des entit\'es, par exemple, le \emph{zoom} ou le \emph{d\'eplacement sur la carte} est trait\'ee de la mani\`ere suivante : 

\begin{enumerate}
%\item The user action on the map is transmitted from the Web browser to the Web server as an HTTP GET request.
\item L'action de l'utilisateur sur la carte est transmis par le navigateur web au serveur web par une requ\^ete HTTP GET.
%\item The Web server activates a PHP script that handles the user action.
\item Le serveur web active le script PHP qui g\`ere l'action de l'utilisateur.
%\item Inside the PHP script, various methods in PHP MapScript are called to prepare the new map parameters, such as the special reference and the extent of the map and the names of the layers to be displayed.  The map drawing method in PHP MapScript is then called to instruct the MapServer to create the map image.
\item Dans le script PHP, plusieurs m\'ethodes PHP MapScript sont appel\'ees pour pr\'eparer les nouveaux param\`etres de la carte tels la projection cartographique et l'\'etendue de la carte ainsi que les noms des couches \`a afficher. La m\'ethode de dessin de la carte dans PHP MapScript est ensuite appel\'ee pour demander la cr\'eation de l'image de la carte \`a MapServer.
%\item The MapServer requests data for the map layers whose data are stored in the PostgreSQL database.
\item MapServer demande les donn\'ees relatives aux couches g\'eographiques stock\'ees dans la base de donn\'ees PostgreSQL.
%\item The data for the layers are returned.
\item Les donn\'ees pour les couches sont renvoy\'ees.
%\item The map image created is returned to the PHP script.
\item L'image de la carte est renvoy\'ee au script PHP.
%\item The HTML page generated by the PHP script is returned to the Web server.
\item La page HTML g\'en\'er\'ee par le script PHP est renvoy\'ee au serveur web.
%\item The Web server transmits the HTML page including the new map image to the Web browser.
\item Le serveur web transmet la page HTML au navigateur web en incluant l'image de la nouvelle carte .
\end{enumerate}

%For a map operation that accesses or manipulates geometry features, i.e., \emph{search by area}, \emph{insert}, or \emph{move point}, is processed as explained above, except between steps 2 and 3 the following operations are performed.
Une op\'eration cartographique qui acc\`ede ou manipule la g\'eom\'etrie d'entit\'es, par exemple la  \emph{recherche par zone}, l' \emph{ajout} ou \emph{d\'eplacer un point}, est trait\'ee de la m\^eme mani\`ere que ci-dessus, except\'e qu'entre les \'etapes 2 et 3, les op\'erations suivantes sont r\'ealis\'ees :

\begin{enumerate}
%\item[a] The PHP script connects to the PostgreSQL database to perform a spatial operation with PostGIS-enabled SQL statements.
\item[a] Le script PHP se connecte \`a la base de donn\'ees PostgreSQL pour r\'ealiser une op\'eration spatiale via une requ\^ete SQL adapt\'ee pour PostGIS.
%\item[b] The result of the spatial operation is returned to the PHP script by the SQL statements.
\item[b] Le r\'esultat de l'op\'eration spatiale est renvoy\'ee au script PHP par requ\^ete SQL.
\end{enumerate}

%Furthermore, \emph{configuration files} are user extensively as part of the WebGD framework for application customization.  Major configuration files are \emph{region configuration files}, \emph{map layer configuration files}, and a \emph{quick view configuration file}.
Le framework WebGD fait beaucoup appel \`a des \emph{fichiers de configuration} pour la personnalisation d'une application. Les fichiers de configuration principaux sont \emph{les fichiers de configuration des r\'egions}, \emph{les fichiers de configuration des couches g\'eographiques} et un \emph{fichier de configuration des raccourcis}.

%\subsection{Region Configuration Files}
\subsection{Fichiers de Configuration de R\'egion}
\label{subsec:Region_Configuration_Files}

%In order to minimize map distortion, different map areas can be displayed with different spatial references.  The \emph{current region} is determined to be the \emph{smallest} one that encompass the extent of the map to be generated.  The \emph{spatial reference} is then automatically switched to that of the new region.  Then the layers in the map legend, the list of the map-navigation and data-manipulation commands, and the \emph{quick view} list are reconfigured for the new region.  These reconfigurations are necessary because different regions may require different sets of map layers, command, and quick view list.
Afin de limiter les distorsions, diff\'erentes zones g\'eographiques peuvent \^etre affich\'ees en utilisant diff\'erents syst\`emes de r\'ef\'erence spatiale. La \emph{plus petite} zone qui contient l'\'etendue de la carte \`a g\'en\'erer d\'etermine la \emph{r\'egion actuelle}. La \emph{r\'ef\'erence spatiale} est ensuite automatiquement chang\'ee pour correspondre \`a celle de la nouvelle r\'egion. Enfin la l\'egende des couches, la liste des commandes de navigation sur la carte et de manipulation des donn\'ees ainsi que la liste des \emph{raccourcis} sont reconfigur\'es pour cette nouvelle r\'egion. Toutes ces reconfigurations sont n\'ecessaires car il se peut que diff\'erentes r\'egions n\'ecessitent diff\'erents jeux de couches g\'eographiques, commandes et listes des raccourcis.

%A \emph{region configuration file} for each map region includes the following definitions:
Pour chaque r\'egion, le \emph{fichier de configuration de r\'egion} inclut les \'el\'ements suivants :

\begin{enumerate}
%\item the special reference for the region,
\item le syst\`eme r\'ef\'erence spatiale sp\'ecifique \`a la r\'egion,
%\item the \emph{name of the region} displayed on the map interface,
\item le \emph{nom de la r\'egion} qui est affich\'e sur l'interface cartographique,
%\item the \emph{unit of distance measurement},
\item l\emph{unit\'e de mesure des distances},
%\item the \emph{name of the map layer configuration file} for the region, and
\item le \emph{nom du fichier de configuration des couches g\'eographiques} de la r\'egion,
%\item the \emph{name of the quick view configuration file}.
\item le \emph{nom du fichier de configuration des raccourcis}.
\end{enumerate}

%For example, the region configuration file for the world is as follows:
Par exemple le fichier de configuration pour le monde correspond \`a :

\begin{footnotesize}
\begin{verbatim}
$region = array(
   "gid" => 1,
   "name" => "world",
   "display_name => "World",
   "srid" => 4326,
   "rank" => 1,
   "units" => "MS_DD",
   "mapfile" => "gmap75_world.map",
   "quickview" => "world_gview.php",
   "legend" => "world_maplayers.php",
   "proj4text" => "+proj=longlat +ellps=WGS84 
         +datum=WGS84"
);
\end{verbatim}
\end{footnotesize}

%The following options can be specified in a configuration file:
Le options suivantes peuvent \^etre sp\'ecifi\'ees dans un fichier de configuration :

\begin{description}
%\item [gid] -- the unique number assigned to each region, which is the primary key value of the row representing the region in table \texttt{regions} in the database.
\item [gid] -- l'identifiant unique associ\'e \`a chaque r\'egion, il s'agit de la cl\'e primaire de chaque enregistrement repr\'esentant une r\'egion dans la table \texttt{regions} de la base de donn\'ees.
%\item [name] -- the name of the region for programming.
\item [name] -- le nom de la r\'egion pour le programme.
%\item [display\_name] -- the name of the region used on the map interface.  This name may include capital letters, white spaces, and other punctuation marks.
\item [display\_name] -- le nom de la r\'egion utilis\'e sur l'interface cartographique. Ce nom peut inclure des capitales, des espaces et autres signes de ponctuation.
%\item [srid] -- the \emph{spatial reference identifier} for the map projection assigned with this region.
\item [srid] -- l'\emph{identifiant de la r\'ef\'erence spatiale} pour la projection cartographique associ\'ee \`a la r\'egion.
%\item [rank] -- the priority number used in determining the region for the map area to be viewed.  The region with the highest rank number is selected among the regions that completely encompass the map area to be viewed.  Regions with higher rank numbers cover smaller areas.
\item [rank] -- le chiffre repr\'esentant la priorit\'e, utilis\'e pour d\'eterminer la r\'egion \`a afficher sur la carte. La r\'egion avec le chiffre le plus \'elev\'e est s\'electionn\'ee parmi les r\'egions dont l'\'etendue est compl\`etement comprise dans celle de la carte \`a afficher. Les r\'egions avec les rangs les plus \'elev\'es recouvrent celles dont les rangs sont inf\'erieurs.
%\item [units] -- the unit of measurement associated with the region.
\item [units] -- l'unit\'e de mesure associ\'ee \`a la r\'egion.
%\item [mapfile] -- the map file to be loaded when this region is selected.
\item [mapfile] -- le fichier de configuration de la carte \`a charger lorsque la r\'egion est s\'electionn\'ee.
%\item [quickview] -- the name of the quick view configuration file for the region.
\item [quickview] -- le nom du fichier de configuration du raccourci pour la r\'egion.
%\item [legend] -- the name of the map layer configuration file for the region.
\item  [legend] -- le nom du fichier de configuration des couches g\'eographiques pour la r\'egion.
%\item [proj4text] -- the projection string used for the region.
\item [proj4text] -- la cha\^ine de caract\`eres de d\'efinition de la projection utilis\'ee pour la r\'egion.
\end{description}

%Whenever the map region changes due to a user action on the map interface, the region configuration file for the new region is loaded dynamically.  Then the map interface is customized according to the new region configuration file.
D\`es que la zone cartographique change, suite \`a une action de l'utilisateur sur l'interface cartographique, le fichier de configuration de la nouvelle r\'egion est charg\'e automatiquement. Ensuite l'interface cartographique est modifi\'ee selon le fichier de configuration de cette nouvelle r\'egion.

%The region configuration file for Oregon, for example, contains the following definitions:
Par exemple, le fichier de configuration pour l'Oregon correspond \`a :

\begin{footnotesize}
\begin{verbatim}
$region = array(
   "gid" => 150137,
   "name" => "oregon",
   "display_name" => "Oregon",
   "srid" => 6010,
   "rank" => 150137,
   "units" => "MS_FEET",
   "mapfile" => "gmap75_oregon.map",
   "quickview" => "oregon_gview.php",
   "legend" => "oregon_maplayers.php",
   "proj4text" => "+proj=lcc +lat_1=43.0
         +lat_2=45.5 +lat_0=41.75 
         +lon_0=-120.5 
         +x_0=400000.00000 +y_0=0.0"
);
\end{verbatim}
\end{footnotesize}

%\subsection{Map Layer Configuration Files}
\subsection{Fichier de Configuration des Couches G\'eographiques}
\label{sec:MapLayerConfigurationFiles}

%The \emph{map layer configuration file} provided for a region specifies the layers to be included in the legend and their characteristics.  It is possible for multiple map regions to share one map layer configuration file.
Le \emph{fichier de configuration des couches g\'eographiques} pour une r\'egion sp\'ecifie les couches \`a inclure dans la l\'egende ainsi que leurs caract\'eristiques. Plusieurs r\'egions peuvent partager un m\^eme fichier de configuration des couches g\'eographiques.

%The map layer configuration file for the Oregon region, for example, contains the following definitions:
Par exemple, le fichier de configuration des couches g\'eographiques pour la r\'egion de l'Oregon est d\'efini comme suit :

\begin{footnotesize}
\begin{verbatim}
$layer_groups = array (
  'grp_eo_py' => array(
     'geom_type' => 'polygon',
     'table' => 'eo_py',
     'layer_selectable' => true,
     'gid_column' => 'gid',
     'geom_col' => 'the_geom',
     'legend_label' => 'EO Polygons',
     'search_script' => 
     	'forms/eo/eo_py_eo_search.phtml',
     'select_script' => 
     	'forms/eo/eo_py_eo_select.phtml',
     'edit_script' => 
     	'forms/eo/eo_py_edit.phtml',
     'normal_layer' => 'eo_py',
     'searched_layer' => 'eo_py_searched',
     'checked_layer' => 'eo_py_checked',
     'selected_layer' => 'eo_py_selected',
     'img_src' => 'images/eo_poly.png',
     'img_width' => 26,
     'img_height' => 26,
     'onclick' => 'activate_layer("grp_eo_py")',
     'data_srid' => 32119
  ),     
  'grp_eosrc_pt' => array(
     'geom_type' => 'point', 
     'table' => 'eosrc_pt', 
     'layer_selectable' => true,
     'gid_column' => 'gid',
     'geom_col' => 'the_geom', 
     'legend_label' => 'EOSRC Points', 
     'search_script' => 
     	'forms/eo/eosrc_pt_search.phtml',
     'select_script' => 
     	'forms/eo/eosrc_pt_select.phtml',
     'edit_script' => 
     	'forms/eo/eosrc_pt_edit.phtml',
     'normal_layer' => 'eosrc_pt',
     'searched_layer' => 'eosrc_pt_searched',
     'checked_layer' => 'eosrc_pt_checked',
     'selected_layer' => 'eosrc_pt_selected',
     'img_width' => 5,
     'img_height' => 5,
     'onclick' => 'activate_layer("grp_eosrc_pt")',
     'data_srid' => 32119
  ),     
...
\end{verbatim}
\end{footnotesize}

%According to the above configuration file, the map legend shown in Figure \ref{fig:MapLegend} is produced.
La l\'egende de la carte sur la figure \ref{fig:MapLegend} a \'et\'e produite avec l'exemple de fichier de configuration pr\'esent\'e ci-dessus.

\begin{figure}[htbp]
\centering
\includegraphics[width=.5\columnwidth]{proceedings/minoura/MapLegend.png}
%\caption{Map Legend of WebGD Application NHIS}
\caption{L\'egende de la carte de l'application WedGD NHIS}
\label{fig:MapLegend}
\end{figure}

%We now explain each option used in map-layer configuration:
Nous allons d\'etailler chaque option utilis\'ee dans ce fichier de configuration :

\begin{description}
%\item [geom\_type] -- the type of geometry features contained in the layer.  The value can be \texttt{polygon}, \texttt{multipolygon}, \texttt{linestring}, \texttt{multilinestring}, \texttt{point} or \texttt{multipoint}.  Exact spatial operations performed depend on this type.  For example, if the type is \texttt{point}, a point is inserted on the map with an insert operation.  On the other hand, if the type is \texttt{polygon}, a polygon feature can be inserted.
\item [geom\_type] -- le type de g\'eom\'etrie des entit\'es contenues dans la couche. Il peut s'agir de \texttt{polygon} (polygone), \texttt{multipolygon} (multi-polygone), \texttt{linestring} (ligne), \texttt{multilinestring} (polyligne), \texttt{point} (point) ou \texttt{multipoint} (multi-point).
%\item [table] -- the name of the table in the database that contains the geometry column for the layer.
\item [table] -- le nom de la table dans la base de donn\'ees qui contient le champ g\'eom\'etrie de la couche.
%\item [layer\_selectable] -- the boolean option that determines whether spatial operations can be performed on the layer or not.  Some layers, such as those for counties and highways in the above example, are static, and they are not selectable for spatial operations.
\item [layer\_selectable] -- une valeur bool\'eenne qui d\'etermine si des op\'erations spatiales peuvent \^etre effectu\'ees sur la couche ou pas. Certaines couches, telles que les comt\'es et les routes principales de l'exemple ci-dessus, sont statiques et ne sont pas s\'electionnables pour les op\'erations spatiales.
%\item [gid\_column] -- the name of the column that contains the identifiers for the geometry features in the map layer.
\item [gid\_column] -- le nom du champ qui contient les identifiants des entit\'es g\'eom\'etriques de la couche.
%\item [geom\_col] -- the name of the geometry column for the geometry features contained in the layer.  The default name is \texttt{the\_geom}.
\item [geom\_col] -- le nom du champ g\'eom\'etrie pour la g\'eom\'etrie des entit\'es contenues dans la couche. Le nom par d\'efaut est \texttt{the\_geom}.
%\item [legend\_label] -- the name of the layer in the legend.
\item [legend\_label] -- le nom de la couche dans la l\'egende.
%\item [search\_script] -- the name and the location of the search form associated with the layer.
\item [search\_script] -- le nom et la localisation du formulaire de recherche associ\'e \`a la couche.
%\item [select\_script] -- the name and the location of the select form associated with the layer.
\item [select\_script] -- le nom et la localisation du formulaire de s\'election associ\'e \`a la couche.
%\item [edit\_script] -- the name and the location of the edit form associated with the layer.
\item [edit\_script] -- le nom et la localisation du formulaire d'\'edition associ\'e \`a la couche.
%\item [normal\_layer] -- the name of the map layer displayed when no highlighting occurs.
\item [normal\_layer] -- le nom de la couche affich\'ee lorsqu'elle n'est pas en surbrillance.
%\item [searched\_layer, checked\_layer, selected\_layer] -- the names of the layers used to highlight the geometry features \emph{searched for}, \emph{checked}, or \emph{selected}, respectively.  The geometry features returned by a search operation is \emph{searched for}, those whose checkboxes are turned on in search result form are \emph{selected}, and the geometry feature chosen for editing is \emph{selected}.
\item [searched\_layer, checked\_layer, selected\_layer] -- les noms des couches utilis\'ees pour mettre en surbrillance les entit\'es g\'eom\'etriques respectivement \emph{cherch\'ees}, \emph{coch\'ees} ou \emph{s\'electionn\'ees}.
%\item [img\_src, img\_width, img\_height] -- the file name, the width, and the height of the icon in the legend.
\item [img\_src, img\_width, img\_height] -- le nom du fichier, la largeur et la hauteur de l'ic\^one dans la l\'egende.
%\item [onclick] -- the name of the javascript event handler activated when the user selects the layer in the legend.
\item [onclick] -- le nom du gestionnaire d'\'ev\'enements javascript activ\'e lorsque l'utilisateur s\'electionne la couche dans la l\'egende.
%\item [data\_srid] -- the \emph{spatial reference identifier (srid)} that designates the map projection used by the geometry features in the map layer.  If this srid is different from that of the map region, then geometry features in the layer are reprojected before they are displayed on the map.
\item [data\_srid] -- l'\emph{identifiant de la r\'ef\'erence spatiale (srid)} qui correspond \`a la projection cartographique utilis\'ee pour les entit\'es g\'eom\'etriques de la couche. Si le srid est diff\'erent de celle de la r\'egion, les entit\'es g\'eom\'etriques de la couche sont reprojet\'ees avant d'\^etre affich\'ees sur la carte.
\end{description}

%\subsection{Quick View Configuration File}
\subsection{Fichier de Configuration des Raccourcis}
\label{sec:QuickViewConfigurationFile}

%The \emph{quick view} mechanism allows the user to select the map area of her interest.  That is, the user can switch to a new map area quickly by selecting the map area from the quick-view dropdown list.
Le m\'ecanisme de \emph{raccourcis} permet \`a l'utilisateur de s\'electionner une zone d'int\'er\^et. C'est-\`a-dire que l'utilisateur peut rapidement passer \`a une nouvelle zone en la s\'electionnant dans la liste des raccourcis.

%Each entry in a \emph{quick view configuration file} describes the name of the map area represented by the entry, the map projection used by the \emph{extent} of the map area, and the extent.  The quick view configuration file for the Oregon region shown in Figure \ref{fig:QuickView}, for example, can be as follows:
Chaque entr\'ee dans un \emph{fichier de configuration des raccourcis} d\'ecrit le nom de la zone repr\'esent\'ee par cette entr\'ee, la projection cartographique utilis\'ee sur l'\emph{\'etendue} de la zone et l'\'etendue. Par exemple, le fichier de configuration du raccourci pour la r\'egion de l'Oregon pr\'esent\'ee sur la figure \ref{fig:QuickView} pourrait \^etre comme suit :

\begin{footnotesize}
\begin{verbatim}
$qview = array(
  array(
    'name' => 'World',
    'srid' => 4326,
    'extent' => '-180,-90,180,90'
  ),
  array(
    'name' => 'United States',
    'srid' => 4326,
    'extent' => '-125,13,-65,53'
  ),
  array(
    'name' => 'United States, East',
    'srid' => 4326,
    'extent' => '-102,22,-60,50'
  ),
  array(
    'name' => 'United States, West',
    'srid' => 4326,
    'extent' => '-135,30,-105,50'
  ),
  array(
    'name' => 'Whole Oregon',
    'srid' => 6010,
    'extent' => '46461.662375,-43912.968464,
      2487069.754184,1785176.331408',
  ),
...
\end{verbatim}
\end{footnotesize}

%The quick view list of regions as displayed in the map interface corresponding to the configuration file above:
Voici la liste des raccourcis des r\'egions telle qu'elle appara\^it sur l'interface cartographique correspondant au fichier de configuration pr\'esent\'e ci-dessus.

\begin{figure}[htbp]
\centering
\includegraphics[width=.5\columnwidth]{proceedings/minoura/QuickView.png}
%\caption{Quick View Selection of WebGD Application NHIS}
\caption{Choix des raccourcis pour l'application WebGD NHIS}
\label{fig:QuickView}
\end{figure}

%Each entry in a quick view configuration file can specify the following options:
Pour chaque entr\'ee dans le fichier de configuration des raccourcis, les options suivantes peuvent \^etre sp\'ecifi\'ees :

\begin{description}
%\item [name] -- the name of the map area.
\item [name] -- le nom de la zone.
%\item [srid] -- the spatial reference identifier for the extent explained below.
\item [srid] -- l'identifiant de la r\'ef\'erence spatiale pour l'\'etendue d\'etaill\'ee ci-dessous.
%\item [extent] -- the \texttt{xmin}, \texttt{ymin}, \texttt{xmax}, and \texttt{ymax} values describing the positions of the lower left and upper right corners of the map area.
\item [extent] -- les coordonn\'ees \texttt{xmin}, \texttt{ymin}, \texttt{xmax} et \texttt{ymax} d\'ecrivant la position des coins inf\'erieur gauche et sup\'erieur droit de la zone g\'eographique.
\end{description}

%\section{Automatic Generation of Web-Form Scripts}
\section{G\'en\'eration automatique de scripts de formulaires web}
\label{sec:AutomaticGenerationOfWebFormScripts}

%Several tools have been developed to augment the WebGD framework and simplify application development.  The WebGD Web-site generator (WebGD-Gen) can create an entire WebGD application, including a web-based mapping interface.  WebGD-Gen \emph{automatically} generates a consistent set of Web scripts from \emph{configuration files}, which are again automatically generated from a relational database schema.  Since form generation is automatic, the cost of application development is greatly reduced.  For a database such as Biotics that contains approximately 700 tables, programming all the required 3,500\footnote{700 x 50} forms manually can be very costly, even unfeasible.
Plusieurs outils ont \'et\'e d\'evelopp\'es pour enrichir le framework WebGD et simplifier le d\'eveloppement d'une application. Le g\'en\'erateur de site Internet WebGD (WebGD-Gen) peut cr\'eer une application WebGD enti\`ere, incluant une interface cartographique web. WebGD-Gen g\'en\`ere \emph{automatiquement} un jeu de scripts de formulaires web coh\'erents \`a partir des \emph{fichiers de configuration} qui sont \'egalement g\'en\'er\'es automatiquement \`a partir du sch\'ema relationnel d'une base de donn\'ees. La g\'en\'eration de formulaires \'etant automatique, les co\^uts de d\'eveloppement d'une application en sont grandement r\'eduits. Pour une base de donn\'ees telle que Biotics qui contient environ 700 tables, programmer l'ensemble des 3 500\footnote{700 x 50} formulaires n\'ecessaires manuellement serait extr\^emement co\^uteux voir infaisable.

%WebGD-Gen is implemented as a collection of \emph{templates}.  Each template, combined with a corresponding \emph{configuration file}, generates one of the following six types of Web scripts: \emph{search}, \emph{select}, \emph{edit}, \emph{information}, \emph{action}, and \emph{treeview} scripts.  Templates and configuration files are written in PHP.  The Web scripts generated by them are also in PHP.  The generated scripts are executed on a Web server by a PHP interpreter.  Each script, except for an action script, creates a Web form that is displayed on a client computer by a Web browser.  Figure \ref{fig:Interactions} illustrates the interactions among the Web scripts and forms.
WebGD-Gen correspond \`a une collection de \emph{templates}. Chaque template, combin\'e avec le \emph{fichier de configuration} correspondant, g\'en\`ere un des six types de scripts web : les scripts \emph{recherche}, \emph{s\'election}, \emph{\'edition}, \emph{informations}, \emph{action} et \emph{arborescence}. les templates et les fichiers de configuration sont \'ecris en PHP. Les scripts web qu'ils g\'en\`erent sont \'egalement en PHP. Ces scripts g\'en\'er\'es sont ex\'ecut\'es par un serveur web via un interpr\'eteur PHP. Chaque script, except\'e le script action, cr\'ee un formulaire web qui est affich\'e par l'ordinateur client via un navigateur Internet. La figure \ref{fig:Interactions} illustre les interactions entre les scripts web et les formulaires.


\begin{figure*}
 \centering
   \includegraphics[width=0.95\textwidth]{proceedings/minoura/Interactions.png}
% \caption{Interactions among Web Scripts and Forms}
\caption{Interactions entres les scripts web et les formulaires}
 \label{fig:Interactions}
\end{figure*}

%Furthermore, WebGD-Gen can automatically generate the statements for inserting, searching, and deleting \emph{geographical features} if the following lines, for example, are added to a configuration file:
De plus, si les lignes suivantes donn\'ees en exemple sont ajout\'ees \`a un fichier de configuration, WebGD-Gen permet de g\'en\'erer automatiquement les requ\^etes pour l'ajout, la recherche et la suppression d'\emph{entit\'es g\'eographiques} :

\begin{footnotesize}
\begin{verbatim}
 // type of geographical features
$web_gd = 'MULTIPOLYGON';      
// layer group in legend
$layer_name = 'grp_eo_py';     
// geometry column containing shapes
$geometry_column = 'the_geom';
//geographical feature IDs
$gid_column = 'gid';           
// epsg spatial reference
$db_table_srid = 32119;       
\end{verbatim}
\end{footnotesize}

%The forms generated for geographical features can perform the following additional functions compared to those for ordinary database tables:
Les formulaires g\'en\'er\'es pour les entit\'es g\'eographiques ont les fonctionnalit\'es suppl\'ementaires suivantes, compar\'e aux formulaires des tables ordinaires d'une base de donn\'ees :

\begin{enumerate}
%\item A search form can be activated from a map interface.  In this case, the extent of a search box specified on the map is passed as additional search parameters.
\item Un formulaire de recherche peut \^etre activ\'e \`a partir de l'interface cartographique. Dans ce cas, l'\'etendue du rectangle de recherche sp\'ecifi\'e sur la carte est pass\'e en tant que param\`etre additionnel de recherche.
%\item A select form includes additional JavaScript code for highlighting geographical features retrieved or selected by the user.
\item Un formulaire de s\'election comprend du code Javascript suppl\'ementaire pour mettre en surbrillance les entit\'es g\'eographiques r\'ecup\'er\'ees ou s\'electionn\'ees par l'utilisateur.
%\item An edit form can insert a record for a geographical feature, after transforming the coordinate values from the spatial reference used by the current map interface to the one used by the geometry column for the record.
\item Un formulaire d'\'edition peut ins\'erer un enregistrement pour une entit\'e g\'eographique, apr\`es transformation des coordonn\'ees depuis le syst\`eme de r\'ef\'erence spatiale de l'interface cartographique actuelle vers celui utilis\'e par le champ g\'eom\'etrie de l'enregistrement.
\end{enumerate}

%The forms related are automatically linked to each other.  Figure \ref{fig:EditForm} shows, as an example, the \emph{edit} form for a Student table.  From this edit form, the user can open the forms for the department and courses related to the student.  The information needed to create the links are extracted from the \emph{primary-key/foreign-key relationships} among the tables in the database.
Les formulaires reli\'es sont automatiquement associ\'es les uns aux autres. Par exemple, la figure \ref{fig:EditForm} montre le formulaire d'\emph{\'edition} d'une table Etudiant. Depuis ce formulaire d'\'edition, l'utilisateur peut ouvrir les formulaires du d\'epartement et des cours associ\'es \`a l'\'etudiant. Les informations n\'ecessaires pour cr\'eer ces liens sont extraites des \emph{relations cl\'e primaire/cl\'e \'etrang\`ere} entre les tables dans la base de donn\'ees.

\begin{figure*}
 \centering
   \includegraphics[width=0.7\textwidth]{proceedings/minoura/EditForm.png}
% \caption{Student Edit Form}
\caption{Formulaire d'\'edition d'un Etudiant}
 \label{fig:EditForm}
\end{figure*}

%In order to generate the Student edit form shown in Figure \ref{fig:EditForm}, the following entry is provided in the configuration file.
Afin de g\'en\'erer le formulaire d'\'edition d'un Etudiant de la figure \ref{fig:EditForm}, les param\`etres suivants doivent \^etre rentr\'es dans le fichier de configuration.

\begin{footnotesize}
\begin{verbatim}
$edit_fields=array(
   array("column"=>"student_id", 
     "label"=>"Student Id", "type"=>"numeric", 
     "maxlen"=>"40", "size"=>"40"),
   array("column"=>"first_name", 
     "label"=>"First Name", "type"=>"text", 
     "maxlen"=>"40", "size"=>"40"),
   array("column"=>"age", "label"=>"Age",
     "type"=>"text", "maxlen"=>"40", "size"=>"40"),
   array("column"=>"gender", "label"=>"Gender",
     "type"=>"text", "maxlen"=>"40", "size"=>"40"),
   array("column"=>"department_id", 
     "label"=>Department ID", "type"=>"to_one", 
     "linked_table"=>"departments", "maxlen"=>"40", 
     "size"=>"40"),
   array("label"=>"Courses Taken", "type"=>"to_many",
     "linked_table"=>"courses", "maxlen"=>"40",
     "size"=>"40"),
   array("column"=>"other_info", 
     "label"=>"Other Information", 
     "type"=>"textarea", "rows"=>"4", 
     "cols"=>"32",
);
\end{verbatim}
\end{footnotesize}

%Each element in array \texttt{\$edit\_fields} represents a field in an edit form, with options \texttt{column}, \texttt{label}, \texttt{table}, \texttt{maxlen}, \texttt{size}, and \texttt{type}.  Option \texttt{type} can be \texttt{numeric}, \texttt{text}, \texttt{time}, \texttt{date}, \texttt{email}, \texttt{phone}, \texttt{textarea}, \texttt{to\_one}, or \texttt{to\_many}.
Chaque \'el\'ement du tableau \texttt{\$edit\_fields} repr\'esente un champ dans un formulaire d'\'edition avec les options \texttt{column} (champ), \texttt{label} (\'etiquette), \texttt{table} (table), \texttt{maxlen} (longueur maximale), \texttt{size} (taille), et \texttt{type} (type). L'option \texttt{type} peut \^etre \texttt{numeric}, \texttt{text}, \texttt{time}, \texttt{date}, \texttt{email}, \texttt{phone}, \texttt{textarea}, \texttt{to\_one} ou \texttt{to\_many}.

\begin{description}
%\item [textarea:] The input is a string displayed in a text area.
\item [textarea:] il s'agit d'une cha\^ine de caract\`ere affich\'ee dans une zone de texte.
%\item [to\_one:] A field of type \texttt{to\_one} allows a user to view or modify the record related to the current record via a \emph{one-to-one} or \emph{many-to-one} relationship type.  In our example, column \texttt{department\_id} in table \texttt{students} is specified as \texttt{to\_one}.  When the \texttt{View} button is clicked, the edit form showing the record of the student's department is displayed.  Furthermore, a user can search and select a new department record to be linked.  Option \texttt{linked\_table} designates the name of the table storing the associated record.  Option \texttt{child\_column} indicates the column for linking in the associated table.  If this option is omitted, the name of the column for linking is identical to that of the foreign key column in the current record.
\item [to\_one:] Un champ de type \texttt{to\_one} permet \`a l'utilisateur de visualiser ou de modifier un enregistrement li\'e \`a l'actuel via une relation du type \emph{un \`a un} ou \emph{plusieurs \`a un}. Dans notre exemple, le champ \texttt{department\_id} de la table \texttt{students} est sp\'ecifi\'e comme \'etant de type \texttt{to\_one}. Lorsque l'on clique sur le bouton \texttt{View}, le formulaire d'\'edition montrant l'enregistrement correspondant au d\'epartement de l'\'etudiant est affich\'e. De plus, un utilisateur peut chercher et s\'electionner un nouveau d\'epartement \`a lier. L'option \texttt{linked\_table} d\'esigne le nom de la table qui stocke l'enregistrement associ\'e. L'option \texttt{child\_column} indique le champ \`a utiliser pour lien dans la table associ\'ee. Si cette option est omise le nom du champ utilis\'e pour le lien est identique \`a celui du champ cl\'e \'etrang\`ere de l'enregistrement actuel.
%\item [to\_many:] The purpose of this type is to list the records related to the current record via a \emph{one-to-many} or \emph{many-to-many} relationship type.  In our example, the field labelled \texttt{Courses Taken} is specified to be \texttt{to\_many}.  When the \texttt{Show} button is clicked, all the courses taken by the student are displayed in the select form for courses.  This type needs options \texttt{linked\_table}, \texttt{parent\_column}, and \texttt{child\_column}.  Option \texttt{linked\_table} and option \texttt{child\_column} can be omitted, when the name of the foreign key column of the associated table is identical to that of the primary key column of the current record.  Option \texttt{parent\_column} indicates the \emph{foreign key} column in the current table.  If this option is omitted, the foreign key column is the primary key column of the current table.
\item [to\_many:] L'objectif de ce type est de lister les enregistrements li\'es \`a l'actuel via une relation du type \emph{un \`a plusieurs} ou \emph{plusieurs \`a plusieurs}. Dans notre exemple, le champ \'etiquet\'e \texttt{Cours suivis} est de type \texttt{to\_many}. Lorsque l'on clique sur le bouton \texttt{Show}, tous les cours pris par l'\'etudiant sont affich\'es dans le formulaire de s\'election des cours. Ce type n\'ecessite la pr\'esence des options \texttt{linked\_table}, \texttt{parent\_column} et \texttt{child\_column}. Les options \texttt{linked\_table} et \texttt{child\_column} peuvent \^etre omises lorsque le nom du champ de la cl\'e \'etrang\`ere de la table associ\'ee est identique \`a celui du champ de la cl\'e primaire de l'enregistrement actuel. L'option \texttt{parent\_column} indique le champ de la \emph{cl\'e \'etrang\`ere} dans la table actuelle. Si cette option est omise, le champ de la cl\'e \'etrang\`ere correspond au champ de la cl\'e primaire de la table actuelle.
\end{description}


\section{G\'en\'eration automatique des fichiers de configuration des couches g\'eographiques}
\label{sec:AutomaticGenerationOfMapLayerConfigurationFiles}

%We can semi-automatically create a map-layer configuration file by using information in the table \nohyphens{\texttt{geometry\_columns}} that stores GIS-related metadata and the layer names in a map file.  Figure \ref{fig:CreationProcess} shows this process for region \emph{xxx}.
On peut cr\'eer un fichier de configuration des couches g\'eographiques de mani\`ere semi-automatique en utilisant les informations de la table \nohyphens{\texttt{geometry\_columns}} qui stocke les m\'etadonn\'ees li\'ees au SIG et le nom de la couche dans le fichier de configuration de la carte.

\begin{enumerate}
%\item The default \emph{map-layer meta configuration file} \nohyphens{\texttt{\emph{xxx}\_maplayers.mconfig}}, which lists all the layer groups, can be created by \textbf{map\_mconfgen}.  The map-layer group names are generated from the table names stored in table  \nohyphens{\texttt{geometry\_columns}} and the map-layer group names defined in the map file.
\item Le \emph{m\'eta-fichier de configuration des couches g\'eographiques} utilis\'e par d\'efaut et qui liste tous les groupes de couches, \nohyphens{\texttt{\emph{xxx}\_maplayers.mconfig}}, peut \^etre cr\'e\'e avec \textbf{map\_mconfgen}. Les noms des groupes de couches sont g\'en\'er\'es \`a partir de des noms des tables stock\'es dans la table \nohyphens{\texttt{geometry\_columns}} et \`a partir des noms des groupes de couches d\'efinis dans le fichier de configuration de la carte.
%\item We can customize the default map-layer meta configuration file, whose format is identical to a map-layer configuration file, by selecting and reordering the layer groups.  We can also provide customized values for the parameters in each layer group.  The meta configuration file needs to keep only the definitions of customized parameters.
\item On peut modifier le fichier de m\'eta-configuration des couches utilis\'e par d\'efaut et dont le format est identique \`a un fichier de configuration des couches, en s\'electionnant et en changeant l'ordre des groupes de couches. On peut \'egalement fournir des valeurs personnalis\'ees pour les param\`etres de chaque groupe de couches. Le fichier de m\'eta-configuration a uniquement besoin de garder les d\'efinitions des param\`etres personnalis\'es.
%\item Finally, map-layer configuration file \nohyphens{\texttt{\emph{xxx}\_maplayers.config}} is generated by \textbf{map\_confgen}.  The information required by this step is retrieved from the meta configuration file, table  \nohyphens{\texttt{geometry\_columns}}, and the map file.  The default values of the parameters determined by the latter two are overwritten if they are customized in the meta configuration file.
\item Enfin, le fichier de configuration des couches \nohyphens{\texttt{\emph{xxx}\_maplayers.config}} est g\'en\'er\'e par \textbf{map\_confgen}. Les informations n\'ecessaire \`a cette \'etape sont r\'ecup\'er\'ees du m\'eta-fichier de configuration, de la table \nohyphens{\texttt{geometry\_columns}} et du fichier de configuration de la carte. Les valeurs par d\'efaut des param\`etres, d\'etermin\'ees par la table \nohyphens{\texttt{geometry\_columns}} et du fichier de configuration de la carte, sont \'ecras\'ees si des valeurs personnalis\'ees sont pr\'esentes dans le fichier de m\'eta-configuration.
\end{enumerate}



%A map-layer meta configuration file can define any parameters that are allowed for a map-layer configuration file.  However, the default one generated by \textbf{map\_mconfgen} contains for each map layer group the definitions only for the following parameters:
Le fichier de m\'eta-configuration des couches permet de d\'efinir n'importe quel param\`etre accept\'e dans le fichier de configuration des couches. Cependant, le fichier que \textbf{map\_mconfgen} g\'en\`ere par d\'efaut contient uniquement, pour chaque groupe de couches, les d\'efinitions des param\`etres suivants :

\begin{description}
%\item [layer\_selectable] -- A boolean option that determines whether the layer can be selected for spatial operations or not.
\item [layer\_selectable] -- Une option bool\'eenne qui d\'etermine si la couche peut \^etre s\'electionn\'ee pour des op\'erations spatiales ou pas.
%\item [legend\_label] -- The name of the layer that will be displayed on the map legend.
\item [legend\_label] -- Le nom de la couche \`a afficher sur la l\'egende de la carte.
\end{description}

%An example of a default map-layer meta configuration file is shown below:
Voici un exemple de fichier de m\'eta-configuration g\'en\'er\'e par d\'efaut :

\begin{footnotesize}
\begin{verbatim}
$layer_groups = array(
   'grp_eo_py' => array(
      'layer_selectable' => true,
      'legend_label' => 'Eo Py',
),
   'grp_eosrc_' => array(
     'layer_selectable' => true,
     'legend_label' => 'Eosrc Pt',
),
...
\end{verbatim}
\end{footnotesize}

%The user may modify the values of these definitions and add others.  For example, the meta configuration file can be customized as follows:
L'utilisateur peut modifier les valeurs de ces d\'efinitions et en ajouter d'autres. Par exemple le fichier de m\'eta-configuration peut \^etre modifi\'e de la mani\`ere suivante :

\begin{footnotesize}
\begin{verbatim}
$layer_groups = array(
   'grp_eo_py' => array(
      'layer_selectable' => true,
      'legend_label' => 'EO Polygons',
      'search_script' => 'forms/eo/eo_py_eo_search.phtml',
      'select_script' => 'forms/eo/eo_py_eo_select.phtml',
      'edit_script' => 'forms/eo/eo_py_edit.phtml',
      'img_src' => 'images/eo_poly.png',
),
   'grp_eosrc_pt' => array(
      'layer_selectable' => true,
      'legend_label' => 'EOSRC Points',
      'search_script' => 'forms/eo/eosrc_pt_search.phtml',
      'select_script' => 'forms/eo/eosrc_pt_select.phtml',
      'edit_script' => 'forms/eo/eosrc_pt_edit.phtml',
      'img_src' => 'images/eosrc_pt.png',
),
...
\end{verbatim}
\end{footnotesize}

%The following customization was done:
Les modifications suivantes ont \'et\'e effectu\'ees :

\begin{enumerate}
%\item \texttt{legend\_label} was changed to the desired layer name for the map legend.
\item \texttt{legend\_label} a \'et\'e chang\'e pour le nom souhait\'e de la couche dans la l\'egende de la carte.
%\item The names and locations of the search form, select form, and edit form are specified in \texttt{search\_script}, \texttt{select\_script}, and \texttt{edit\_script}, respectively.
\item Les noms et la localisation des formulaires de recherche, de s\'election et d'\'edition sont sp\'ecifi\'es respectivement dans \texttt{search\_script}, \texttt{select\_script} et \texttt{edit\_script}.
%\item The source file name of the icon in the map legend was specified in \texttt{img\_src}.
\item Le nom du fichier source de l'ic\^one dans la l\'egende de la carte a \'et\'e sp\'ecifi\'e dans \texttt{img\_src}.
\end{enumerate}

%The order of the map-layer groups can also be changed to that desired in the map legend.
L'ordre des groupes de couches peut \'egalement \^etre chang\'e pour correspondre \`a celui souhait\'e dans la l\'egende de la carte.

%Then the map-layer configuration file shown previously can be generated by \textbf{map\_confgen}.
Ensuite le fichier de configuration des couches montr\'e pr\'ec\'edemment peut \^etre g\'en\'er\'e par \textbf{map\_confgen}.

%\section{WebGD Development History}
\section{Historique du D\'eveloppement de WebGD}
\label{sec:WebGDDevelopmentHistory}

%The WebGD framework and WebGD-Gen were developed \emph{incrementally} and \emph{iteratively} during the last four years.  We first implemented in 2000 an application that allowed point features to be inserted on a map by using ASP with ArcIMS and ArcSDE.  In 2001, we re-implemented this application with ASP.NET as ASP.NET provides Web controls, which are better building blocks for Web pages.  Based on this application, the first version of WebGD framework was created in 2002 in order to support multiple applications.\cite{Wangmutitakul et al.:2004}
Le framework WebGD et WebGD-Gen ont \'et\'e d\'evelopp\'es de mani\`ere \emph{incr\'ementielle} et \emph{it\'erative} au cours des quatre derni\`eres ann\'ees. En 2000, nos avons tout d'abord impl\'ement\'e une application qui permettait d'ajouter des entit\'es de type ponctuel sur une carte en utilisant ASP avec ArcIMS et ArcSDE. En 2001, nous avons re-d\'evelopp\'e cette application avec ASP.NET, vu qu'ASP.NET propose des contr\^oles web qui constituent de meilleures briques pour la construction de pages web. Sur la base de cette application, la premi\`ere version du framework WebGD a vu le jour en 2002, afin de supporter de multiples applications.\cite{Wangmutitakul et al.:2004}

%In early 2003, we re-implemented an application called Motels Oregon with MapServer, PostGIS, and PostgreSQL\cite{Sano et al.:2003}  This version on Linux was more reliable and faster than the old one, as well as being built with free software.  While implementing the next MapServer application, which was a germplasm resource management system (GEM-GIS), we created the first version of WebGD framework for MapServer.  This framework was then enhanced so that it can handle polygon features as well as point features.
D\'ebut 2003, nous avons re-d\'evelopp\'e une application appel\'ee Motels Oregon avec MapServer, PostGIS et PostgreSQL\cite{Sano et al.:2003}. Cette version Linux \'etait non seulement plus fiable et rapide que la pr\'ec\'edente mais \'egalement bas\'ee sur des logiciels libres. En d\'eveloppant l'application MapServer suivante, un syst\`eme de gestion de la ressource en germplasm (GEM-GIS), la premi\`ere version du framework WebGD pour MapServer a \'et\'e cr\'e\'ee. Ce framework a ensuite \'et\'e am\'elior\'e pour qu'il int\`egre la gestion des entit\'es de type polygone aussi bien que celles de type ponctuel.

\begin{figure}
 \centering
   \includegraphics[width=1\columnwidth]{proceedings/minoura/CreationProcess.png}
% \caption{Process of Creating a Map-Layer Configuration File}
\caption{Processus de cr\'eation d'un fichier de configuration des couches}
 \label{fig:CreationProcess}
\end{figure}

%The two major enhancements made to the WebGD framework in 2004 were \emph{dynamic switching} of \texttt{spatial references} for different regions and \emph{automatic generation} of Web forms that can be used to insert, query, and delete geographical features.  Compared to an application that simply displays geographical features as points on a map, the current WebGD framework is roughly 20 times more complex in terms of the time we spent implementing the required features.
Deux am\'eliorations majeures ont \'et\'e faites en 2004 sur le framework WebGD : le \emph{changement dynamique} de \texttt{r\'ef\'erence spatiale} pour diff\'erentes r\'egions et la \emph{g\'en\'eration automatique} de formulaires web utilis\'es pour les ajouts, les interrogations et les suppressions d'entit\'es g\'eographiques. Compar\'e \`a une application qui affiche simplement des entit\'es g\'eographiques telles que des points sur une carte, le framework actuel est environ 20 fois plus complexe en terme de temps pass\'e \`a d\'evelopper les fonctionnalit\'es n\'ecessaires.

%\section{Conclusions and Future Work}
\section{Conclusions et travaux \`a venir}
\label{sec:ConclusionsAndFutureWork}

%We have developed the WebGD framework and the WebGD-Gen application generator for rapid development of Web-based GIS/database applications.
Nous avons d\'evelopp\'e le framework WebGD et le g\'en\'erateur d'applications WebGD-Gen pour d\'evelopper rapidement des applications SIG/base de donn\'ees Internet.

\begin{enumerate}
%\item Geographical features, such as habitats of plants and animals, road-work sites, and waterlines, can be inserted, queried, and deleted with the map interface and Web forms displayed on a standard Web browser.
\item Les entit\'es g\'eographiques, telles que les habitats de plantes ou d'animaux, les zones de chantiers routiers ou des tron\c{c}ons hydrographiques, peuvent \^etre ins\'er\'ees, interrog\'ees et supprim\'ees gr\^ace \`a l'interface cartographique et les formulaires web qui s'affichent sur un navigateur web standard.
%\item An application can be created without any programming.  The map interface and Web scripts for data access can be automatically generated from configuration files, and those configuration files can be generated from the database schema and the GIS metadata, i.e. information stored in the table  \nohyphens{\texttt{geometry\_columns}}.  Automatic generation of a Web-based GIS application not only reduces the development cost significantly, but it also facilitate incremental and iterative development of the application.
\item Une application peut \^etre cr\'e\'ee sans programmer une seule ligne de code. L'interface cartographique et les scripts web pour l'acc\`es aux donn\'ees peuvent g\'en\'er\'es automatiquement \`a partir de fichiers de configuration et ces fichiers de configuration peuvent eux-m\^eme \^etre g\'en\'er\'es \`a partir du sch\'ema de base de donn\'ees et les m\'etadonn\'ees sur les donn\'ees SIG, par exemple, les informations stock\'ees dans la table \nohyphens{\texttt{geometry\_columns}}. La g\'en\'eration automatique d'une application SIG Internet ne r\'eduit pas seulement les co\^uts de d\'eveloppement de mani\`ere significative mais facilite \'egalement le d\'eveloppement incr\'ementiel et it\'eratif de l'application.
%\item Dynamic switching of spatial references allows an application to cover different regions with different map files, projections, map legends, and quick-view lists.  This is an important feature needed for an application that covers the entire USA or the world.
\item Le changement dynamique de syst\`eme de r\'ef\'erence spatial permet \`a une application de couvrir diff\'erentes r\'egions ayant des fichiers de configuration de la carte, des projections, des l\'egendes de carte et des listes de raccourcis diff\'erents. Il s'agit d'une fonctionnalit\'e importante pour une application qui couvrirait par exemple l'ensemble des Etats-Unis ou du monde.
%\item We created the WebGD framework by using only free open-source software.  The software tools we use, such as the University of Minnesota MapServer, PostgreSQL DBMS, PostGIS, Apache, and PHP are all available for free.  The GIS data used, such as those from USGS, TIGER/LINE, and Digital Chart of the World (DCW), are also in the public domain.  Therefore, the framework is available for anyone for free use.
\item Nous avons cr\'e\'e le framework WebGD en utilisant uniquement des logiciels libres et open source. Les outils logiciels que nous utilisons, tels que MapServer de l'Universit\'e du Minnesota, le SGBD PostgreSQL, PostGIS, Apache et PHP sont tous disponibles gratuitement. Les donn\'ees SIG utilis\'ees provenant de l'USGS, de TIGER/LINE et de Digital Chart of the World (DCW) font \'egalement partie du domaine public. Le framework est disponible \`a tous en utilisation libre.
%\item The cost of running our applications is extremely low.  We could put copies of such large databases as Biotics, SSURGO2 soil data, and a part of National Germplasm Resource Information System on a \$800PC.
\item Les co\^uts pour faire tourner nos applications sont extr\^emement bas. Nous pouvons mettre des copies de grosses bases de donn\'ees telles que Biotics, les donn\'ees sut les sols de SSURGO2 et une partie du Syst\`eme d'Information National sur la Ressource en Germplasm  sur un PC \`a \$800.
\end{enumerate}

%Automatic code generation of a WebGD application will save a great deal of effort in the development of a spatial decision-support system.  Although some manual customization is required, the time needed for customization can be lowered to weeks or months compared to the years required to build a \emph{spatial decision-support system} from scratch.
La g\'en\'eration automatique du code d'une application WebGD permettra d'\'economiser beaucoup d'efforts dans le d\'eveloppement de syst\`emes spatials d'aide \`a la d\'ecision. Bien que quelques personnalisations sont n\'ecessaires, le temps \`a y accorder peut \^etre diminu\'e \`a des semaines ou des mois compar\'e aux ann\'ees n\'ecessaires pour d\'evelopper un \emph{syst\`eme spatial d'aide \`a la d\'ecision} depuis le d\'ebut.

%The WebGD framework and WebGD-Gen are currently available upon request. In order to release them to the public as free and open-source software, we are looking for collaborators. We are also reimplementing the map interface by using OpenLayers to support smooth panning.
Le framework WebGD et WebGD-Gen sont actuellement disponibles sur demande. Nous cherchons des collaborateurs pour le rendre publique en tant que logiciel libre et open source. Nous sommes \'egalement en train de re-d\'evelopper l'interface cartographique en utilisant OpenLayers afin de supporter les d\'eplacements fluides sur la carte.

\input{proceedings/minoura/publications}  % Bibliography entries in external file

\address{Toshimi Minoura, Nirut Chalainanont, Junya Sano\\
  Oregon State University\\
  \url{http://engr.oregonstate.edu/~minoura/research/creeda/}\\
  \email{minoura AT eecs.orst.edu}
  }
