image
image
image
image
image
 

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/


image
image
image