|
Unshackling GIS
Open Source Opportunities in GIS
As GIS continues to mature, open source tools are beginning to make an impact on the development of
GIS/mapping applications. This is a brief introduction to some of the tools available and the types of
applications possible. Micro Map & CAD, Inc provides a number of services and custom development
options based on open source GIS tools.
Databases:
Spatial databases are at the core of GIS applications. There are several open source database projects,
but the most advanced engine for spatial applications is PostgreSQL. PostgreSQL is an object-relational
database management system (ORDBMS) descended from the Berkely Postgres project. Geospatial extension
are provided by PostGIS.
“PostGIS adds support for geographic objects to the PostgreSQL object-relational database. In effect,
PostGIS "spatially enables" the PostgreSQL server, allowing it to be used as a backend spatial database
for geographic information systems (GIS), much like ESRI's SDE or Oracle's Spatial extension. PostGIS
follows the OpenGIS "Simple Features Specification for SQL.“
In addition to PostGIS the popular MySQL project has recently added its own set of spatial extensions which
promise to eventually rival the abilities of PostGIS. Both PostGIS and MySQL are available under the common
open source GNU license, while PostgreSQL is available under a BSD license. In either case the tools are
available for use and distribution by everyone free of charge for any purpose, be it private, commercial,
or academic.
Traditional spatially enabled database engines can also be supplemented with newer native XML databases like
Berkley DB XML. The convergence of XML spatial dialects and native XML databases holds promise for interesting
developments in the future.
Workstation tools – authoring, viewing, and translating:
Even with a powerful geospatial database it is necessary to capture, create, and transform data to populate the spatial
database. There are innumerable tools that can bereferenced in this category. Links to many of these are available at
http://freegis.org/ along with some additional reviews and information. GRASS is one of the older more established GNU
licensed tools but there are a number of others with a variety of specialized capabilities.
For the more advanced developer the Jump-project provides several java api libraries most notably, Java Topology Suite,
(JTS), and JCS Conflation Suite (JCS) , as well as an extensible application framework, JUMP, for working with
geospatial data. JUMP connectors are available for PostGIS and public WMS servers. Access is provided to the
ubiquitous shp format. Extensions can be created using Beanshell Scripts in addition to modifying the java
framework api or developing plugin jars.
“The Unified Mapping Platform (JUMP) is a GUI-based application for viewing and processing spatial data.
It includes many common spatial and GIS functions. It is also designed to be a highly extensible framework
for developing and running custom spatial data processing applications.”
Many open source projects and several commercial products rely on the translation utilities found in GDAL
and OGR. GDAL is primarily oriented to raster image formats while OGR handles vector formats. OpenEV is a
GUI layer for viewing and analyzing raster/vector data that sits on top of GDAL, OGR, and Proj4. OpenEV
also provides Python bindings for custom Python scripting. Proj4 is a library api for coordinate transformations
that is utilized in a number of open source projects and commercial products. Java advanced Imaging API, JAI,
provides a powerful Java based resource for image manipulation and analysis.
Web applications:
The impact of open source GIS has really been felt in the Internet GIS application arena.
Traditionally bound tightly to a workstation model, GIS has begun to escape into the larger
world of web applications. Open source projects tend to be at the forefront of leapfrog technologies
since they are less encumbered by traditional proprietary business models.
The emergence of w3c XML graphics standards, SVG, and the Open Geospatial Consortium, OGC,
initiatives have paved the way for extremely flexible GIS web applications. The OGC has established
a number of important specifications for data interchange, GML, and WMS. Here is a quick run down on
these important open non-proprietary standards:
SVG (w3c standard) – Scalable Vector Graphics
“SVG is a language for describing two-dimensional graphics and graphical applications in XML.”
WMS (OGC spec) – Web Map Service
“Provides three operations protocols (GetCapabilities, GetMap, and GetFeatureInfo) in support of the creation and display of registered and superimposed map-like views of information that come simultaneously from multiple sources that are both remote and heterogeneous. “
GML (OGC spec) – Geographic Markup Language
“The Geography Markup Language (GML) is an XML encoding for the transport and storage of geographic information, including both the geometry and properties of geographic features. “
The introduction of these standards provides a basis for implementing thin client mapping and GIS applications.
This type of web application generally consists of three parts:
1. User clients - browser based - html, SVG, and Javascript
2. http server middleware - J2EE container or Apache Tomcat – JSP, Servlets, JDBC, JAI, …innumerable Java APIs
3. Geospatial database servers – PostGIS, Oracle Geospatial, DB2 Geo, and/or 3rd party public WMS servers

Fig 1 Web Applications making use of Public WMS
Micro Map & CAD has demonstrated a number of custom web interfaces based on SVG in the browser to
access public Web Map Services that are just now becoming available. For example Terraserver provides
Digital Orthophoto Quad coverage for the US in its public WMS, while the USGS provides seamless Landsat,
DEM relief, and Digital Raster Graph, DRG, through a public WMS. Although not strictly a WMS, Google
Maps Beta also provides map resources that can be wrapped in a thin SVG client.
SVG interface examples
As public Web Map Services evolve there will be additional data resources. Currently WMS servers provide
raster formats, however, the OGC WMS specification provides for vector format output as well, like SVG
and gml. Many state and federal data repositories are prime candidates for constructing new public WMS
servers, advancing beyond simple raster to a more flexible vector output: US Bureau of the Census, USGS ,
NOAA, FEMA, Fish & Wildlife, BLM, State DOTs, Health and Human Services, to name just a few. These services
allow small footprint web applications to mix and match base data with local client data. For example, live
GPS locations can be served from a spatial database like PostGIS, and overlaid onto a menu of base map
choices such as DRG, DOQ, or Google maps.
SVG affords much more than viewing capability. Through a rich set of event listeners, animation features,
and image filter effects, SVG can provide flexible interfaces customized to very specific requirements.
SVG is part of the browser DOM and can take part in highly interactive applications. Javascript on the
browser interacts with the user communicating with a server for server side functions such as database
lookups, or computationally intensive operations. Polling can be initiated from the client for live location
updates for AVL management. Dynamic monitoring can also be turned into asynchronous remote control from
the browser using SVG interfaces. Using SVG clients, data on the client can be viewed, updated, and
authored all in a collaborative whiteboard environment.
PostGIS along with Apache Tomcat and Java provide all the functionality to roll your own WMS server,
while SVG and javascript provide tools to make your own flexible interfaces based on open standards.
Together these tools provide a powerful base to create flexible specialized web interfaces to GIS functionality.
Databases
PostgreSQL/PostGIS http://www.postgis.org/
MySQL http://www.Mysql.com
Berkely DB XML http://www.sleepycat.com/
Vector
JUMP http://www.vividsolutions.com/jump/
http://www.jump-project.org
OGR http://ogr.maptools.org/
Batik http://xml.apache.org/batik/
Imagery
GDAL http://www.remotesensing.org/gdal/
OpenEV http://openev.sourceforge.net/
OSSIM http://www.ossim.org/tiki-index.php
JAI http://java.sun.com/products/java-media/jai/index.jsp
Web applications
Apache http://xml.apache.org/
XML- SVG http://www.w3.org/Graphics/SVG/
XML- gml https://portal.opengeospatial.org/files/index.php?artifact_id=7174
OGC WMS http://portal.opengeospatial.org/files/index.php?artifact_id=5316
UMN Mapserver http://mapserver.gis.umn.edu
IDE
Eclipse http://www.eclipse.org/
|