\section{MapBuilder Project Update}
\label{sec:mapbuilder}

\begin{small}Strategic Direction March 2007                                        \end{small}
\emph{by Cameron Shorter}


\subsection{Status}

\begin{large}MapBuilder          \end{large} is a powerful, standards compliant and FREE
geographic mapping client which runs in a web browser. It renders raster maps
from WMS, Google Maps and more, and vector layers from WFS, GeoRSS and GML. It
even offers feature editing to WFS-T. Mapbuilder is often described as a web
based toolkit, or framework, that allows a developer to insert a selection of
widgets into a web page. Eg: MapPanes, FeatureLists, Navigation tools, Style
Editors and more. 

Over the last year, the three leading browser based mapping clients,
Mapbuilder, OpenLayers and MapBender have been actively working together sharing ideas
and code. In particular, OpenLayers is currently being inserted into
Mapbuilder as a rendering engine. Our latest release, mapbuilder-1.5apha1
includes an OpenLayers renderer and our next release will complete the
integration by linking Mapbuilder and Openlayers tools. 

OpenLayers focuses on rendering a MapPane. Mapbuilder extends this to offer
extra widgets like Style Layer Descriptor (SLD) Editors, Time Series Web Map
Services, processing Web Map Context (WMC) documents and more. 

Mapbuilder developers are now contributing to the OpenLayers codebase when
adding core Mapping functionality. 

Merging code between projects is difficult emotionally as much as technically.
The catalyst for the Mapbuilder/OpenLayers merge was that there were four
different projects developing vector rendering using SVG/VML at the end of
2006. After much discussion we agreed to work together on the same code base.
This meant that each of us had to throw away \~3/4 of our original
code. In the short term, this meant some extra effort from all of us, but in
the long term, we will all benefit from the merger. We will have more
developers maintaining the same code base and users will be less confused when
trying to pick a client. 

Developers who throw away code feel a strong sense of loss of status and
credibility. Credit goes to those who were flexible enough to throw away their
code and also to the developers who were generous in their acknowledgments of
past works. 

Internally, Mapbuilder stores its map data inside a Context document.
Initially we used to use a Web Map Context (WMC) document which describes a
list of WMS layers. However, the WMC doesn't allow you to insert other layers,
like WFS, GML, GeoRSS, Google Maps, etc. 

In mapbuilder-1.5alpha1 we support OWS Context (currently an OGC draft
document) which extends WMC to include multiple layers types. This improves
the structure of our code and configuration files, as well as continuing with
our support of OGC Standards. The 1.5 branch will stablise over the next few
months with release candidates and then final release. 

Mapbuilder graduated through the Open Source Geospatial Foundation (OSGeo)
incubation process in October 2006 making the second and most recent project
to graduate. Graduation turned out to be a lengthy process involving auditing
code and tidying up development processes. However compared to other projects
going through graduation, Mapbuilder is young and had less history to dig
through, which is why were one of the first projects to graduate (after
Mapbender). 

Association with OSGeo was a positive move for Mapbuilder popularity.
Mapbuilder downloads doubled in the month after OSGeo was created with
Mapbuilder as one of the founding projects. 

In summary, Mapbuilder continues to have a healthy developer and user base, it
has a stable codebase, good development processes and a healthy future ahead
of it. 

\subsection{Download Metrics}

This graph shows a steady growth in interest since the start of the project,
with a doubling of downloads when the OSGeo Foundation was
founded (with Mapbuilder a founding project) in March 2006. There was a dip
over Christmas 2006, then back again early 2007 (the gml-viewer and
mapbuilder-1.5alpha1 was released at the end of December 2006). 
% insert [IMAGE] 
\begin{figure}[htbp]
   \centering
   %name of your graphic, without the path AND in PNG (screnshots etc)/PDF (drawings) format:
   \includegraphics[width=0.95\textwidth]{dev_announce/mapbuilder/chart9911.pdf}
   %\caption{Graph 1: Download Metrics}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:download_metrics}
\end{figure}

% \begin{tabular}{ll}
% \multicolumn{1}{c }{\bf Date } & \multicolumn{1}{c }{\bf Downloads  } \\
% { Apr-04 } & { 0  } \\
% { May-04 } & { 31  } \\
% { Jun-04 } & { 173  } \\
% { Jul-04 } & { 115  } \\
% { Aug-04 } & { 69  } \\
% { Sep-04 } & { 38  } \\
% { Oct-04 } & { 40  } \\
% { Nov-04 } & { 32  } \\
% { Dec-04 } & { 26  } \\
% { Jan-05 } & { 54  } \\
% { Feb-05 } & { 88  } \\
% { Mar-05 } & { 127  } \\
% { Apr-05 } & { 160  } \\
% { May-05 } & { 213  } \\
% { Jun-05 } & { 280  } \\
% { Jul-05 } & { 230  } \\
% { Aug-05 } & { 221  } \\
% { Sep-05 } & { 235  } \\
% { Oct-05 } & { 319  } \\
% { Nov-05 } & { 332  } \\
% { Dec-05 } & { 420  } \\
% { Jan-06 } & { 469  } \\
% { Feb-06 } & { 536  } \\
% { Mar-06 } & { 1,141  } \\
% { Apr-06 } & { 1,029  } \\
% { May-06 } & { 1,040  } \\
% { Jun-06 } & { 1,206  } \\
% { Jul-06 } & { 1,213  } \\
% { Aug-06 } & { 1,153  } \\
% { Sep-06 } & { 1,059  } \\
% { Oct-06 } & { 1,346  } \\
% { Nov-06 } & { 1,008  } \\
% { Dec-06 } & { 869  } \\
% { Jan-07 } & { 1,351  } \\
% { Feb-07 } & { 1,359 }

%\end{tabular}

\subsection*{Subversion Commit Metrics}

This graph tracks the number of lines of code in the Mapbuilder repository.
The graph shows a that mapbuilder has been steadilly growing since December
2003. We have had consistent support from a community of developers which
includes a constant core, as well as a number of fring developers who join the
community, develop for a while, then move on. 

% insert IMAGE
\begin{figure}[htbp]
   \centering
   %name of your graphic, without the path AND in PNG (screnshots etc)/PDF (drawings) format:
   \includegraphics[width=0.95\textwidth]{dev_announce/mapbuilder/commits.pdf}
   \caption{Source data \url{http://fisheye.codehaus.org/browse/mapbuilder/trunk/mapbuilder/mapbuilder/lib}}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:commit}
\end{figure}
%linegraph\raisebox{.6ex}{} 

% \subsection*{Significant Dates}

% \begin{tabular}{ll}
% \multicolumn{1}{c }{\bf Date } & \multicolumn{1}{c }{\bf Event  } \\
% { December 2003 } & { Start  } \\
% { May 2004 } & { mapbuilder-0.1rc2  } \\
% { June 2004 } & { mapbuilder-0.1  } \\
% { March 2005 } & { mapbuilder-0.2alpha  } \\
% { April 2005 } & { mapbuilder-0.3.1alpha  } \\
% { August 2005 } & { mapbuilder-0.4  } \\
% { December 2005 } & { mapbuilder-1.0rc1  } \\
% { February 2006 } & { mapbuilder-1.0rc2  } \\
% { February 2006 } & { OSGeo Foundation starts  } \\
% { April 2006 } & { mapbuilder-1.0  } \\
% { August 2006 } & { mapbuilder-1.0.1  } \\
% { October 2006 } & { Mapbuilder graduates OSGeo Foundation  } \\
% { December 2006 } & { mapbuilder-1.5apha1 }
% 
% \end{tabular}

%Source data:
%\url{http://sourceforge.net/project/showfiles.php?group_id=35246&package_id=116388}
%\url{http://www.osgeo.org/tyler/osgeo_1st_anniversary} 
%\url{http://wiki.osgeo.org/index.php/Twentieth_Board_Meeting}

\subsection{Email Traffic Metrics}

This graph shows the monthly number of emails for Developer and User email lists.
Developer emails spiked at the end of 2005, beginning of 2006 during the
development of release 1.0 before leveling back. The stabling of email traffic
can be put down to: 
\begin{figure}[htbp]
   \centering
   %name of your graphic, without the path AND in PNG (screnshots etc)/PDF (drawings) format:
   \includegraphics[width=0.95\textwidth]{dev_announce/mapbuilder/chart9912.pdf}
   %label of the figure, which has to correspond to \ref{}:
   %\caption{Graph 3}
   \label{email-stats}
\end{figure}

\begin{enumerate}
\item A reasonable effort has been put into documentation. Often newbie
questions are simply answered by pointing at existing documentation. This is
not to say our documentation is great, it is just getting a bit better. 
\item The Vector rendering work done from mid 2006 was done in conjunction
with outside developers. Much of the communication moved to other email lists,
or IRC channels. (In particular,
irc://freenode.net\verb|#|openlayers 
\item April - October 2006, a reasonable amount of developer effort was
focused on getting OSGeo Graduation rather than development. A drop in email
activity over the last few months is probably due to: 
\end{enumerate}

% insert [IMAGE] 

% \begin{tabular}{llll}
% \multicolumn{1}{c }{\bf Date } & \multicolumn{1}{c }{\bf Devel } &
% \multicolumn{1}{c }{\bf User } & \multicolumn{1}{c }{\bf Total  } \\
% { May-03 } & { 2 } & {~ } & { 2  } \\
% { Jun-03 } & { 20 } & {~ } & { 20  } \\
% { Jul-03 } & { 24 } & {~ } & { 24  } \\
% { Aug-03 } & { 38 } & {~ } & { 38  } \\
% { Sep-03 } & { 23 } & {~ } & { 23  } \\
% { Oct-03 } & {~ } & {~ } & { 0  } \\
% { Nov-03 } & { 10 } & {~ } & { 10  } \\
% { Dec-03 } & { 24 } & {~ } & { 24  } \\
% { Jan-04 } & { 88 } & {~ } & { 88  } \\
% { Feb-04 } & { 200 } & {~ } & { 200  } \\
% { Mar-04 } & { 114 } & {~ } & { 114  } \\
% { Apr-04 } & { 85 } & {~ } & { 85  } \\
% { May-04 } & { 85 } & {~ } & { 85  } \\
% { Jun-04 } & { 191 } & {~ } & { 191  } \\
% { Jul-04 } & { 60 } & {~ } & { 60  } \\
% { Aug-04 } & { 75 } & {~ } & { 75  } \\
% { Sep-04 } & { 53 } & {~ } & { 53  } \\
% { Oct-04 } & { 47 } & {~ } & { 47  } \\
% { Nov-04 } & { 103 } & {~ } & { 103  } \\
% { Dec-04 } & { 72 } & {~ } & { 72  } \\
% { Jan-05 } & { 57 } & {~ } & { 57  } \\
% { Feb-05 } & { 71 } & {~ } & { 71  } \\
% { Mar-05 } & { 153 } & { 2 } & { 155  } \\
% { Apr-05 } & { 79 } & { 15 } & { 94  } \\
% { May-05 } & { 121 } & { 1 } & { 122  } \\
% { Jun-05 } & { 153 } & { 14 } & { 167  } \\
% { Jul-05 } & { 147 } & {~ } & { 147  } \\
% { Aug-05 } & { 203 } & { 3 } & { 206  } \\
% { Sep-05 } & { 417 } & { 8 } & { 425  } \\
% { Oct-05 } & { 267 } & { 37 } & { 304  } \\
% { Nov-05 } & { 182 } & { 14 } & { 196  } \\
% { Dec-05 } & { 211 } & { 42 } & { 253  } \\
% { Jan-06 } & { 363 } & { 148 } & { 511  } \\
% { Feb-06 } & { 338 } & { 108 } & { 446  } \\
% { Mar-06 } & { 369 } & { 104 } & { 473  } \\
% { Apr-06 } & { 128 } & { 84 } & { 212  } \\
% { May-06 } & { 150 } & { 133 } & { 283  } \\
% { Jun-06 } & { 128 } & { 66 } & { 194  } \\
% { Jul-06 } & { 96 } & { 82 } & { 178  } \\
% { Aug-06 } & { 63 } & { 34 } & { 97  } \\
% {Sep-06 } & { 71 } & { 86 } & { 157  } \\
% {Oct-06 } & { 107 } & { 59 } & { 166  } \\
% {Nov-06 } & { 145 } & {83 } & { 228  } \\
% {Dec-06 } & { 182 } & { 45 } & { 227  } \\
% {Jan-07 } & { 119 } & { 75 } & { 194  } \\
% {Feb-07 } & { 72 } & { 60 } & { 132 }
% 
% \end{tabular}

%Data source:
%\url{http://sourceforge.net/mailarchive/forum.php?forum_id=44559} 
%and
%\url{http://sourceforge.net/mailarchive/forum.php?forum_id=475} 

\subsection*{Gml Viewer Download Metrics}

In December 2006, we released GML Viewer version of Mapbuilder which can be
distributed with a GML Dataset. It was distributed on CD as one of the
artifacts of the Open Geospatial Consortium Testbed 4. It was also made
available for download and download statistics are available below. The number
of downloads is 1/10 of the mapbuilder-lib downloads above which suggests that
the target market are getting their gml viewers from the CD, or that people
are more interested in other features from Mapbuilder.

\begin{tabular}{ll}
\multicolumn{1}{c }{\bf Date } & \multicolumn{1}{c }{\bf Downloads  } \\
{ Dec-06 } & { 75  } \\
{ Jan-07 } & { 104  } \\
{ Feb-07 } & { 115 }

\end{tabular}

Data Source: \footnote{GML Viewer downloads:  \url{http://sourceforge.net/project/stats/detail.php?group_id=35246&ugn=mapbuilder&type=prdownload&mode=alltime&package_id=116388 }}

% 
% \subsection{Criteria for a successful project}
% 
% Refraction's State of Open Source GIS provides an excellent
% checklist for evaluating open source projects. The more of these questions
% which are answered in the positive, the healthier the OSS project under
% examination is. 
% 
% \begin{itemize}
% \item Is the software modular? (This criterion is more applicable to some
% projects than others, depending on design constraints.) Is there a clear
% method to add functionality to the project that does not involve re-working
% the internals? Is this method documented clearly with examples? Is there a
% library of already-contributed enhancements maintained by the wider user /
% developer community? 
% 
% \begin{itemize}
% \item Mapbuilder is modular and extendable from the ground up. 
% \end{itemize}
% 
% \end{itemize}
% 
% \begin{itemize}
% \item Is the development team transparent? Is it clear who the core
% development team is? Is the development team mailing list public? Is the
% current development version of the code available online? Is membership in the
% team attainable via a merit-based process? 
% 
% \begin{itemize}
% \item Yes, Mapbuilder has a strong transparent management team. 
% \end{itemize}
% 
% \end{itemize}
% 
% \begin{itemize}
% \item Is the project well documented? Does the web presence provide direct
% access to both the source code and documentation about the internals of the
% code? Is there tutorial level documentation for all three user categories
% (user, administrator, programmer) to get people up and working with the
% software quickly? 
% 
% \begin{itemize}
% \item Mapbuilder's documentation is passable, but effort spent on
% documentation could greatly improve our users experience. 
% \end{itemize}
% 
% \item How wide is the development community? Are multiple organizations
% represented in the core development team? Are core team members financially
% supported in their work by sponsoring organizations? Is the development
% community national or international? How large is the user mailing list? How
% large is the developer mailing list? 
% 
% \begin{itemize}
% \item Mapbuilder has between 5 and 10 developers at any one time, and the
% developers come from around the globe and from many different organisations.
% This is a strong core, but it would be nice to see the developer community
% double. 
% \end{itemize}
% 
% \item How wide is the user community? (This criterion is basically a standard
% COTS criterion more installations imply wider acceptance and testing.) What
% organizations have deployed the software? What experiences have they had? 
% 
% \begin{itemize}
% \item Up to March 2007, Mapbuilder downloads steadily increased to 500
% downloads/month. After that, downloads doubled and have remained steady at
% around 100 downloads/month.  
% \item It is good to see this steady growth, however it would be nicer to see
% the download figures increase by an order of magnitude. I suspect that
% Mapbuilder has lost market share of simple mapping applications to OpenLayers,
% GoogleMaps, MSN and Yahoo maps. 
% \end{itemize}
% 
% \end{itemize}

% \subsection*{Previous Strategic Direction Papers}
% 
% \begin{enumerate}
% \item March 2007\raisebox{.6ex}{} 
% \item September 2006\raisebox{.6ex}{} 
% \item April 2006\raisebox{.6ex}{} 
% \item June 2005\raisebox{.6ex}{} 
% \end{enumerate}

\subsection{About the author}
Cameron Shorter is on the Project Management Committee of the
Mapbuilder project

