Page 2 of 3
Previous | Next

Going Open in WebGIS


2.1.1 Web Mapping Service (WMS)
A WMS is capable of generating a map as an image, usually in JPEG, PNG or GIF or even as vector-based graphical elements in Scalable Vector Graphics (SVG) formats of georeferenced data and this is in contrast with a Web Feature Service (WFS) which returns raw geographic data. Think of WMS server as a storage server of specific types of maps. These maps will be generated on the fly depending on the user’s request based on the Styled Layered Description (SLD) file. A SLD is used to define rules using a styling language that both the client and server can understand.

2.1.2 Web Feature Service (WFS)
OGC’s Web Feature Service (WFS) specifies the interfaces for data manipulation operations of geographic transactions. The WFS operations include insert, update, delete, query and discovery operations on geographic features. A WFS is capable of performing what a WMS can do and more. While a WMS returns data as an image, WFS returns data in GML which is the standard language used by spatial applications. It allows programmers to develop applications that can perform spatial queries over the Internet or through SOAP protocol.

2.2 Open Source Projects
Open source GIS systems have received more attention lately as the learning curves for these software toolkits are being lowered. According to [5], there are two development languages that are identified as being widely used in open source GIS:-

  • C/C++ language – considered as the early developers of Open Source GIS toolkits and includes scripting languages such as Python, Perl and PHP which can easily bind to the C/C++ libraries. Many of the Java libraries are actually built based on the C libraries.
  • Java language – a newer modular language for GIS toolkits. They have almost equally as many libraries compared with their C counterparts and is gaining popularity among developers.
According to [6], open source GIS tools can be broken down into desktop and server applications. For this paper, we would review both desktop and server tools in both C and Java. However, the focus would be primarily on the server tools as highlighted in Figure 2 1.


Figure 2 1: Open Source GIS Toolkits


2.3 C/C++ Based GIS Toolkits and Projects
The strength of C/C++ based toolkits lies in the maturity of the available libraries as these have received a lot more developer time. There are many shared C libraries available on the Internet that can be used for the development of a GIS such as GDAL and Proj4. The purpose of these shared libraries is to promote code reusability. The following are commonly used C based libraries on the surveyed Open Source projects:-

2.3.1 GDAL / OGR
The Geospatial Data Abstraction Library (GDAL) is a translator for raster geospatial objects which provides read and write functionality for various data formats. The OGR toolkit provides read and write functions in vector formats such as ESRI Shapefile, PostGIS database and Mapinfo TAB format. GDAL is by far the most popular library being used by successful C based projects and has been ported partly into Java and used by various open source toolkits that we have reviewed in here.

2.3.2 MapServer
MapServer is the most successful open source GIS project surveyed and is developed by the University of Minnesota. MapServer is a web application server that can be deployed over the Internet using open source libraries such as Shapelib (a free C library used to read and write ESRI Shapfile format), FreeType (font engine), GDAL and OGR. It is built in with MapScript to provide users with an interface to access MapServer’s C API using PHP, Perl, Python or Java.

The Mapserver CGI is called mapserv which is an interface thate handles input and directs image creation or query request. MapServer complies with OGC’s WMS and WFS specification. Access to Mapserver’s web services are primarily through a CGI interface but HTTP POST commands are also supported. Mapserver has by far the largest user base for open source GIS application development.

2.4 Java Based Toolkits and Projects
Similar to the C based projects, Java GIS toolkits promote the development of GIS through object oriented programming. Developers in the Java GIS camp initially wanted to unify the 3 main Java toolkits namely OpenMap, GeoTools and DeeGree but failed to do so [5] due to licensing agreements. OpenMap is still independently developed but GeoTools and DeeGree have converged into a single project and is only known as Geotools. Most of the Java projects surveyed have common library files based on the two libraries which are mentioned below.

2.4.1 JTS Topology Suite
The JTS Topology is a Java API that provides a set of core libraries that provide spatial applications a set of operations that using explicit models and robust generic algorithms [7]. JTS provides a Java implementation of the OpenGIS Simple Feature Specifications for SQL (SFS). JTS has built in a complete, consistent implementation of basic 2D spatial algorithms such as binary predicates and spatial analysis methods.

2.4.2 GeoTools
Geotools is an open source Java GIS toolkit for development of OGC compliant programs. It has a modular architecture which allows additional functionality to be incorporated. The developers of Geotools do not intend to make it a comprehensive GIS product or application but intend to interact and support other initiatives and projects which could leverage the Getools toolkit to create such a resource [8]. It is not a tool for geomatics but a set of Java libraries compliant with GeoAPI interface specifications. This interface specification aims to reduce the duplication by providing a neutral interface that GIS projects can use to access and reducing any interoperability issues.

The Geotools has two renderer implementations. The LiteRenderer is a stateless renderer where the results of drawing an object does not depend on the state of the system or on previously executed commands. LiteRenderer is powerful on the server side environment and its code base is simple and also faster than J2D for map rendering. J2D is a stateful renderer which supports on-the-fly coordinate re-projections and fast update through data decimation and memory caching.

2.4.3 Geoserver
Geoserver is a GIS web server released under the GPL license which is built fully using the Java 2 Platform Enterprise Edition (J2EE). Geoserver is a fully integrated Web Feature Server (WFS) and Web Map Server (WMS) that conforms to the OpenGIS Consortium’s specifications. It is a middleware that allows users to modify and retrieve data over the Internet using a browser. Geoserver aims to make geographic data easily accessible through Web Services. The developers envisioned a spatial web where data can be freely accessed and the project is to be the central repository from which such information can be easily obtained. Geoserver is built using Geotools as the library and thus conforms to the OGC specifications. It supports a high number data types such as shapefiles and datastores such as PostGIS or MySQL which are handled directly by Geotools and is transparent to Geoserver. Geoserver has its share of problems but active development by the open source community makes it a good alternative to commercial GIS software packages

Page 2 of 3
Previous | Next