OPEN SOURCES #13:
                                      MapWindow GIS demonstrates that Open Source and Windows are
DANIEL AMES CORRECTS THE COMMON       not mutually exclusive by providing an extensible desktop applica-
MISCONCEPTION THAT OPEN SOURCE IS     tion which is both built on top of .NET and available to all for free.

INCOMPATIBLE WITH MICROSOFT AND THE   “Open source software is the last bastion of Stalinism!”
WINDOWS OPERATING SYTEM.              So was told a group of open source MapWindow GIS programmers at a
                                      recent professional conference. The speaker represented a proprietary
                                      software development company and apparently was not aware of the
                                      rapidly growing market for open source services and consumer
                                      demand for transparent, extensible, non-proprietary software solutions.
                                      Indeed such misconceptions about open source software are common.
                                      For example, “open source is for hackers and code jockeys,” and “open
                                      source is the domain of command-line Linux junkies.” Abating these
                                      misconceptions is a central focus of the MapWindow GIS project.

                                      A Lightweight Extensible Desktop GIS
                                      The MapWindow GIS desktop application is a free and simple to use
                                      data viewer built on the Microsoft .NET Framework and intended for
                                      users on the Windows operating system. MapWindow GIS supports a
                                      variety of raster and vector file formats (through the Geospatial Data
                                      Abstraction Layer – GDAL). Built-in functions include layer and legend
                                      management; symbology for vector and raster data; shapefile and attrib-
                                      ute table editing; data query, merge and reprojection; and labeling and
                                      other essential GIS capabilities. Additionally a simple plug-in interface
                                      allows third party programmers to add new functionality using any .NET
                                      language. The MapWindow GIS desktop application is used throughout

44                                                         September 2008 | GEOconnexion International Magazine
                                                                                                          geoprocessing tools (e.g. based on GRASS
                                                                                                          modules) as standalone .NET assemblies which
                                                                                                          can then be used by other developers.

                                                                                                          The MapWindow GIS User-Developer
                                                                                                          Without doubt, the greatest asset to any open
                                                                                                          source project is its user-developer community.
                                                                                                 hosts an active and engaged
                                                                                                          user-developer community who all share the
                                                                                                          common (often need-driven) goal of robust
                                                                                                          GIS tools and programming components for
                                                                                                          the Windows platform. End-user tools in simple
                                                                                                          installation packages and utilities developed by
                                                                                                          community members are provided as free
                                                                                                          downloads (the MapWindow application
                                                                                                          averages 6000 downloads per month). A
                                                                                                          Subversion code repository houses all project
                                                                                                          source code and is regularly accessed by
                                                                                                          hundreds of code downloaders and 30+
The MapWindow GIS desktop application showing vector and raster data, a terrain                           registered code committers. A Bugzilla-based
analysis plug-in, and embedded scripting editor.]
                                                                                                          bug tracking system is used to track and
                                                     An Open Source ActiveX Map                           discuss bugs and feature requests. And a
                                                     Component                                            Phorum-based discussion forum is used by
                                                         A core component of the MapWindow GIS            developers and end-users alike to discuss the
                                                     open source project is the MapWinGIS.ocx             project, answer questions, and share develop-
                                                     ActiveX control. This component is built on the      ment ideas. Indeed, since all MapWindow
                                                     Microsoft Win32 GDI API and can be used to           source code is licensed under the Mozilla
                                                     add GIS capabilities to any software that            Public License 1.1, the components can be
                                                     supports COM and ActiveX controls (e.g. Excel,       used in commercial applications (as well as
                                                     Access, Delphi, Visual Basic 6, VB .NET, C#, C++).   freeware, shareware, etc.) Because of this, the
                                                     With over 28,000 downloads from the                  discussion forums also become business
                                            website, this component has            exchange arenas for budding entrepreneurs,
                                                     found its way into hundreds of research and          companies, and government agencies alike –
                                                     commercial software applications. Third party        so much for Stalinism.
                                                     developers have incorporated the component
MapWindows application in                            into taxi-cab tracking software in Malaysia, ship    Summary
the Netherlands]                                     tracking software in Florida, fire management        In summary, the MapWindow GIS project
the world by individuals, companies, non-profit      software in Canada, and graduate student             attempts to fill the critical niche need for open
and government organizations as a GIS data           theses around the world. The component               source GIS programming components for the
distribution and visualization platform.             attempts to serve as a replacement for the ESRI      Windows operating system and its 90% share
                                                     MapObjects® component as an embeddable               of the desktop client market. Built on the .NET
Plug-ins and Application                             mapping widget for third party software.             Framework and focused primarily on providing
Customization                                                                                             extensible developer tools rather than end-user
The MapWindow GIS desktop application can            Fully Interface-Based GIS Components                 software, we expect the project to continue to
be customized to meet the needs of specific          The MapWindow GIS plug-in interface capital-         evolve and grow as another vibrant flowerbed
end-users through the development of plug-           izes on .NET support for truly object-oriented       in the greater garden that is the larger open
ins and customization of the graphical user          class inheritance and implementation by              source GIS community.
interface XML-based configuration file. The          allowing third party developers to implement a
largest such project is the U.S. Environmental       single, “IPlugin” interface and compile their        Links
Protection Agency’s BASINS system for                code to a .NET assembly which is then immedi-        MapWindow GIS project home:
watershed modeling and water resources data          ately recognizable as a plug-in. A similar 
analysis. The BASINS project builds on               approach to modularization is currently being        US EPA’s BASINS watershed analysis system:
MapWindow through the introduction of 20+            introduced at all levels of the MapWindow  
plug-ins that perform specific data analysis         source code. Under the new design, third party       The Open Source Geospatial Foundation
tasks in a GIS environment. Third party plug-in      developers will be able to extend every              (OSGeo):
developers have full access to the map, legend,      element of the software through implementa-
toolbar, menu bar, and all underlying geopro-        tion of interfaces. Support for new data types       Article by Daniel P. Ames, Ph.D.
cessing functions through code and hence can         can be introduced by implementing an ILayer          ( is a professor of Geosciences
focus on creating discipline specific tools using    interface. An IMap interface defines a map           at Idaho State University where he leads the
existing GIS capabilities. BASINS is currently       component, whether built as a DirectX 3-D            development of MapWindow GIS – a .NET based
distributed to water resources professional          map component, a GDI-based 2-D map                   GIS developer platform for the Microsoft Windows
throughout the world, many of whom contin-           component, or future component that                  operating system.
ue to extend and expand the core functionality       implements the same IMap interface (e.g. for
through the open programming interface.              Windows Mobile). Likewise, an ITool interface
                                                     will allow third parties to create new low-level                                                                                                                                    45

To top