The landscape of the geo-spatial industry is undergoing rapid changes. Some suggest a geo-revolution is underway. The range of products and platforms is broadening. Existing boundaries are blurring. In parallel, the world is experiencing an unprecedented economic downturn. Start-ups and established businesses are increasingly looking for low cost solutions. This article will look at the current state of the geo-spatial industry. It will discuss some of the software and base map sources given tightening budgets.
Is Google Maps GIS?
Google maps was launched in November 2005. Thus began the rapid expansion of the geo-industry. Yahoo and Microsoft soon entered the market. Mapquest extended its offering and ESRI broadened their business. All made public their mapping API’s. Slippy tiled base maps became easy to add to any web sites. But are these consumer maps, often described as mash ups, GIS? This has been much discussed on the Web (http://highearthorbit.com/is-googlemaps-gis/). Though there are many differing opinions, the general agreement is that the boundaries are rapidly blurring. It might be worth for this discussion, to include these new, currently free tools.
The GIS Stack
The classic GIS stack is usually discussed in terms of the client, server and database. We will add an additional category, that of tools for tiling and caching.
Figure 1 – Some of the wide array of options for building an open source GIS stack
Figure 2 – FlakeFinder a ski resort mash up using Modest Maps
Less open but still free are the mapping API’s from Google, Microsoft (MSN), Yahoo, Mapquest and ESRI. They break down as follows:
MSN API’s – AJAX, .NET
Yahoo API’s (http://developer.yahoo.com/maps/) – AJAX, AS3
ESRI API’s (http://resources.esri.com/arcgisserver/index.cfm?fa=applications) – AS3, Silverlight, .NET, Java
The use of each API requires a free key. They provide a range of services including marker overlay, routing, styling and geocoding, The ESRI API’s provide the broadest range of GIS tools. They can also access many different map services including Google, MSN and the GeoWebCache/Geoserver and TileCache/MapServer combinations. Recently added to the ESRI offering is an API for Silverlight.
Tiling and Caching
Geoserver will generate tiles for maps automatically, or use seeding to pre-generate tiles, Mapserver relies on ka-Map for tile generation and viewing.
There are two main caching solutions. Each dramatically improves the performance of any mapping application. TileCache (http://tilecache.org/) is another MetaCarta open source product. It is Python based and supports multiple different rendering backends, most notably MapServer. GeoWebCache (http://geowebcache.org/trac) is written in Java. It caches map tiles as they are requested, in effect acting as a proxy between client and server. Based on the request, if no pre-rendered tiles are found, it calls the server to render new tiles. GeoWebCache works with GeoServer, or any WMS-compliant server.
There are many map server solutions. But, two low cost solutions stand out. First there is MapServer (http://mapserver.org/). This is a very popular open source solution. It runs under the Apache Web Server and is supported by an excellent PHP based scripting language called Mapscript. MapServer is a Web map rendering engine. GeoServer (http://geoserver.org) is the second open source spatial server. Built in Java, it is a complete spatial Web environment, often classified both as a rendering engine and application framework.
MapServer and Geoserver can be integrated easily with maps from Google, MSN and Yahoo. They both compare favorably in terms of performance. Geoserver comes with a management interface, this makes set up and configuration somewhat easier than for MapServer. But the lack of need for an application server and the excellent Mapscript, are among the many attractions of MapServer.
Figure 3 – MarineMap is an RIA which uses OpenLayers and Google base maps.
Arguably, the most robust spatial open source database solution is the PostGIS/Postgres combination. PostGIS was developed by Paul Ramsey. He provides excellent documentation and support via his blog (http://blog.cleverelephant.ca/). PostGIS is an extension of Postgres. Like ESRI’s ArcSDE is allows relational databases to work with spatial data. Technically though they are quite different, PostGIS is part of the database while ArcSDE is spatial middleware, running as a separate process.
There are many low cost solutions available for building geo-spatial applications. This article walked through the GIS stack, discussing some of these options. Increasingly, as budgets tighten, companies are turning to these open source development tools. Often they are surprised by what they find.
http://geoserver.org/display/GEOSDOC/Google+Maps - Geoserver and Google maps integration
http://www.rvaidya.com/blog/gis/2009/02/12/mapserver-using-google-maps-with-php-mapscript/ - MapServer and Google maps integration
http://kelsocartography.com/blog/?p=2257 - Marine Maps discussion
http://spatialhorizons.com/2007/11/14/using-mapserver-2-generating-map-tiles/ - generating map tiles for MapServer using ka-Map.