Purpose: Specify Mapbuilder long term Goals and outline roadmap for achieving them.
- #Introduction
- #Other Projects
- #Key Accomplishments
- #Areas for Improvement
- #Opportunities for help
- #Outlook for 2008
- #Metrics
- #Previous Strategic Direction Papers
Introduction
This document summarises the state of the Mapbuilder project and it's relationship with projects around it. It doubles as Mapbuilder's OSGeo annual report.
Commmunity Mapbuilder is a browser based, standards compliant advanced web mapping client and framework.
2007 has been a solid year for Mapbuilder which has grown into a mature, stable project. Many new features have been added, there has been significant collaboration, sharing of code and developers with OpenLayers and our Project Steering Committee has steadily grown.
Mapbuilder related to other OSGeo projects
OpenLayers
OpenLayers is a browser based mapping library while Mapbuilder is more of a framework. OpenLayers provides one Javascript API which can access multiple data sources: Google Maps, Yahoo Maps, MSN Maps, WMS, WFS, Tiled Cache, KML, GML, etc. OpenLayers has a strong community behind it and its feature set continues to grow. If I were writing a SWAT analysis, OpenLayers could be listed under "Threats".
There has been significant collaboration between OpenLayers and Mapbuilder. Developers from the two projects regularly and openly share ideas and code and make adjustments to ensure functionality is useful for both projects. Many developers contribute to both projects. Recent areas of collaboration include:
- Sharing design ideas
- Vector Rendering
- Styling
- Projection (Proj4js)
- KML layers
Mapbuilder differs from OpenLayers by:
- Using a Model/View/Controller design pattern in the client, which means that multiple widgets (views) can present data from one model in numerous ways, or one widget can aggregate data from multiple models. There is no dependency between widgets, so a designer can add/remove widgets without effecting the overall Mapbuilder framework.
- Mapbuilder is good at handling multiple models which drive interdependent widgets.
- Most state is stored as XML inside the model. Consequently:
- Using XML makes transactions with XML based web services simpler. In particular, standards based OGC services are mostly defined as XML and there is no loss of information round tripping XML->JS->XML.
- XSLT can be used to transform Models to views or transactions. XSLT is easier to work with than Javascript transformations from XML to Javascript then back to XML again.
- OWS Context: Mapbuilder stores state in OWS Context format. OWS Context is a draft OGC standard for describing layers and an AreaOfInterst from multiple data sources. It can be shared between supporting clients (like UDig).
- The configuration of Mapbuilder is stored in an XML file making it easy to develop a Mapbuilder application and migrate an application from one version to the other.
For less complicated web mapping applications, OpenLayers should be considered.
Mapbender
Mapbender is another OSGeo webmapping client.
Web Services
Mapbuilder acts as a client to WMS and WFS services like Geoserver and Mapserver. In particular, Mapbuilder shares examples with OpenLayers which makes it easy to test both applications.
Heavy clients
Mapping systems usually need a light, web based client, as well as functionally complete desktop applications like UDig, Jump, OpenJUMP, etc.
Key Accomplishments
Feb 2006: OSGeo was founded with Mapbuilder one of the founding projects. The extra visibility meant the number of Mapbuilder downloads doubled overnight.
Oct 2006: Mapbuilder was the second OSGeo project to graduate OSGeo incubation. This involved a code license audit, and refining and documenting our processes:
Dec 2006: GML Viewer client completed as part of OGC Testbed OWS4. This project introduced OpenLayers as a rendering engine and developed vector rendering in conjunction with OpenLayers.
started serious collaboration between OpenLayers and Mapbuilder as the projects shared the development of cross-browser vector (GML) rendering.
2007: Migration to OpenLayers' rendering engine completed. Through OpenLayers, Mapbuilder has access to the multitude of different layers types: WMS, WFS, GoogleMaps, MSM Maps, Yahoo Maps, GML, KML, ...
2007: Mapbuilder's re-projection code was re-factored and migrated to its own library so that it can:
- Be used by other AJAX libraries - the code is currently being incorporated into OpenLayers.
- Use re-projection as a service.
2007: Internationalization. Mapbuilder uses a language lookup table for all user messages.
2007: Commercial Support officially provided.
Areas for Improvement
Mapbuilder needs to define and sell its market position with respect to other webmapping clients, particularly OpenLayers. OpenLayers has attracted many of the potential Mapbuilder developers at the low end of the market. Our next focus needs to be on make Mapbuilder functionality accessible to OpenLayers developers, enabling Mapbuilder to be an extension to OpenLayers. This is to be achieved by moving Mapbuilder to use the same inheritance model as OpenLayers. (Some work has already been done in this area. For instance, projection code has been restructured to make it accessible to OpenLayers).
While Mapbuilder's documentation is now passable and has most issues covered, there is still room for improvement.
Opportunities for help
Key areas where people can help Mapbuilder include:
- Marketing, including demonstrating Mapbuilder functionality at conferences, providing workshops etc.
- Focusing documentation. Refining the documentation to be easier to use. Writing and refining tutorials.
- Integrate codebase with OpenLayers, to enable OpenLayers users to use Mapbuilder.
Outlook for 2008
Expect to see:
- proj4js spin off into a separate project
- Reshaping of Mapbuilder as a framework which complements OpenLayers and makes it easy for OpenLayers users to access Mapbuilder functionality. This is a good opportunity for a Google Summer of Code student.
- Extension of Mapbuilder's testing process to include TestAnotherWay, as used by OpenLayers. The will complement Mapbuilder's existing testing which targeted at the integration level.
Metrics
Key Milestones
Release |
Date |
Comment |
|---|---|---|
|
2001-09-29 |
First email from Cameron Shorter announcing the project |
|
2002 |
Initial development as an applet started in geotools |
|
2003 |
Raj Singh builds prototype AJAX application |
|
2003-12-22 |
Coding starts on current codebase |
mapbuilder-lib-0.1-rc1 |
2004-05-17 |
Browser client for WMS map layers built from a WMC |
mapbuilder-lib-0.1-rc2 |
2004-05-17 |
|
mapbuilder-0.1rc3 |
2004-05-28 |
|
mapbuilder-lib-0.1 |
2004-06-04 |
|
mapbuilder-lib-0.2-alpha |
2005-03-18 |
WFS-T client, WFS transactions, vector rendering, Time series WMS, JS compression |
|
2005-03-18 |
Mapbuilder bundled with Geoserver as a WFS-T client |
mapbuilder-lib-0.3-alpha |
2005-03-30 |
|
mapbuilder-lib-0.3.1-alpha |
2005-06-12 |
|
mapbuilder-lib-0.4 |
2005-08-10 |
Change from GPL to LGPL license |
|
2005-09-15 |
|
mapbuilder-lib-1.0-rc1 |
2005-12-02 |
|
2006-02-04 |
Downloads of Mapbuilder doubles |
|
mapbuilder-lib-1.0-rc2 |
2006-02-23 |
Migrate from Sourceforge hosting to Codehaus |
mapbuilder-lib-1.0-release |
2006-04-25 |
|
mapbuilder-lib-1.0.1-release |
2006-07-18 |
Internationalisation |
|
2006-09-11 |
FOSS4G 2006 Webmapping Bird of Feather. Participants agreed to collaborate and use Openlayers as a rendering engine. This marks the beginning of the end for Mapbuilder |
|
2006-10-26 |
|
gml-viewer-1.0 |
2006-12-13 |
|
mapbuilder-lib-1.5-alpha1 |
2006-12-21 |
use SVG/VML for vector rendering, support OWS Context, provide a SLD Editor, start moving to Openlayers for rendering, GeoRSS support |
mapbuilder-lib-1.5-alpha2 |
2007-08-23 |
Projection library refactored into its own project |
mapbuilder-lib-1.5-rc1 |
2007-12-24 |
|
mapbuilder-lib-1.5-rc2 |
2008-04-27 |
Add a CS/W catalog client |
|
2008-07-28 |
Data Source: http://sourceforge.net/project/showfiles.php?group_id=35246&package_id=116388
Release Date Metrics
This data shows steady software development and releases over many years which is indicative of a stable mature project.
The project started with some quick release cycles, but leveled out to 3 to 4 months as the project matured.

Release |
Months since last release |
|---|---|
0.1rc3 |
0.5 |
0.1 |
0.5 |
0.2a |
3 |
0.3a |
0.5 |
0.3a |
2.5 |
0.4 |
2 |
1.0rc1 |
4 |
1.0rc2 |
3 |
1.0 |
2 |
1.0.1 |
3 |
1.5a1 |
5 |
1.5a2 |
4 |
1.5rc1 |
4 |
Data Source: http://sourceforge.net/project/showfiles.php?group_id=35246&package_id=116388
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.
Email Traffic Metrics
This shows the monthly number of emails for Developer and User email lists. The fact that User emails is less than Developer emails suggests that Mapbuilder is too difficult for users to download and get working and we should focus more on user needs.
A drop in developer activity over the last couple of months is probably due to:
- Some time being focused toward incorporating Mapbuilder in OSGeo.
- Some corresponding focus on documentation.
- Some key developers focusing on applying Mapbuilder to applications rather than extending Mapbuilder.

Data source: http://sourceforge.net/mailarchive/forum.php?forum_name=mapbuilder-devel and http://sourceforge.net/mailarchive/forum.php?forum_name=mapbuilder-users .Date
Devel
User
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
Mar-07
130
73
203
Apr-07
232
56
288
May-07
134
65
199
Jun-07
135
137
272
Jul-07
200
105
305
Aug-07
174
111
285
Sep-07
80
63
143
Oct-07
69
35
104
Nov-07
103
36
139
Dec-07
89
79
168
Subversion Commit Metrics
This graph tracks the number of lines of code in the Mapbuilder repository. The graph shows a that mapbuilder has been steadily growing since December 2003.
There is a spike in the code size between mid 2005 - 2007 when the code was duplicated into a test environment. Also at the end of 2007, deprecated widgets were cleaned up and archived.
Source data:
http://fisheye.codehaus.org/browse/mapbuilder/trunk/mapbuilder
Previous Strategic Direction Papers
- Strategic Direction - February 2008 (Doubling as Mapbuilder's OSGeo 2007 Annual Report).
- September 2006
- April 2006
- June 2005